抽象类中的虚拟类

时间:2010-08-05 15:02:53

标签: c++ class virtual

你好:)我想问一下,如果有可能做出这样的事情:

我有基类(父母)A和其他三个类(孩子)B C D. 在A类中,我有虚函数,没关系。 但如果我需要一个虚拟课呢?

class A 
{
public:
    virtual int func1()=0;
    virtual int func2()=0;

    virtual class AB; // !!!!???
};

class B
{
public:
    int func1();
    int func2();

    class AB
    {
    public:
    ....
    };
};

类B C D与B类相同。现在,我想创建类实例,它应该自动将类重定向到B或C D等实例,如函数。

有可能吗?我希望,你理解:)非常感谢你的回答。

1 个答案:

答案 0 :(得分:2)

这根本不可能。在运行时确定虚函数调用。类在编译时更改程序的行为。除非运行时和编译时是同一时间,即使用JIT或其他动态代码生成器,否则无法在运行时进行编译时确定。在标准C ++中,这是不可能的。

你可以做的是有一个基类AB,一个虚函数创建一个保证从这个基类继承的类,然后返回一个指向它的指针。