小编Chr*_*ers的帖子

C++多重继承+虚函数( - 模糊)=奇怪的行为(也是函数指针)

我正在创建一些旨在提供对回调功能的访问的接口.也就是说,继承自接口A允许类使用类型1的回调; 接口B允许类型2.继承A和B允许两种类型的回调.最终目的是A类和B类通过继承它们来处理所有脏工作.

第一个问题

这是一个小例子,应该说明我遇到的一些麻烦:

class A
{
public:
    static void AFoo( void* inst )
    {
        ((A*)inst)->ABar( );
    }
    virtual void ABar( void ) = 0;
};

class B
{
public:
    static void BFoo( void* inst )
    {
        ((B*)inst)->BBar( );
    }
    virtual void BBar( void ) = 0;
};

class C : public A, public B
{
public:
    void ABar( void ){ cout << "A"; };
    void BBar( void ){ cout << "B"; };
};
Run Code Online (Sandbox Code Playgroud)

通过拨打电话

C* c_inst …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance pointers casting static-cast

2
推荐指数
1
解决办法
630
查看次数

标签 统计

c++ ×1

casting ×1

inheritance ×1

pointers ×1

static-cast ×1