小编Vig*_*ran的帖子

一般如何从 void * 指针动态转换?

class BASE {
public:
    virtual ~BASE() {}
    void lamp() {
        cout << "\nBASE CLASS";
    }
};

class DERIVED : public BASE {
public:
    void fun();
};

void DERIVED::fun() {
    cout << "\nDERIVED CLASS!";
}

int main() {

    BASE * pbase = new DERIVED; //BASE CLASS POINTER
    void * vbase = pbase;       //VOID POINTER TAKING BASE POINTER 
    DERIVED * pder;             //DERIVED CLASS POINTER

    //pder = static_cast<DERIVED *>(vbase);  //THIS WORKS
    pder = dynamic_cast<DERIVED *>(vbase);   //THIS DOESN'T
    pder->lamp();
    pder->fun();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

每当我尝试将 …

c++ dynamic-cast void-pointers

6
推荐指数
1
解决办法
5313
查看次数

标签 统计

c++ ×1

dynamic-cast ×1

void-pointers ×1