使用儿童方法c

我有这些对象:

class A{
    public:
        void print();
}

class B : public A{
    public:
        void print();
}

class C : public A{
    public:
        void print();
}

功能打印:

void A::print(){
    cout << "A" << endl;
}

void B::print(){
    cout << "B" << endl;
}

void C::print(){
    cout << "C" << endl;
}

现在我有一个A对象的向量,可以包含A B或C.

for(unsigned int i = 0; i<m_vA.size(); i++)
{
    cout << m_vA[i]->print() << endl;
}

但每次函数返回A,即使这是一个B或C对象

谢谢您的帮助

解决方法:

您不会覆盖该功能.为此,请在A类中声明此函数时使用“virtual”关键字.

上一篇:将多态C对象转换为非多态C对象


下一篇:java – 当对象是基类的实例时,为对象调用正确的方法