相关疑难解决方法(0)

内部构造函数中的"this"的dynamic_cast

这个问题与这个问题非常相似为什么我不能在多重继承期间"动态地"广播"侧身"?,除了强制转换确实有效 - 只是不在构造函数内部.

标题:

class A  
{  
public:  
    virtual                ~A() {}
    void                    printA();
};

class B
{
public:
                            B();
    virtual                ~B() {}
    void                    printB();

private:
    std::string             message_;
};

class C : public A, public B
{
public:
                        C() {}
    virtual                ~C() {}
};
Run Code Online (Sandbox Code Playgroud)

资源:

void A::printA() { cout << "A" << endl; }
B::B()
{
    A* a = dynamic_cast< A* >( this );
    if ( a ) {
        message_ = std::string( "A and B" );
    } else { …
Run Code Online (Sandbox Code Playgroud)

c++ constructor dynamic-cast this multiple-inheritance

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