我在考试中遇到的问题

#include <iostream>
using namespace std;

class CA
{
public:
    virtual void print()
    {
        cout << "ca print" << endl;
        info();
    }
    virtual void info()
    {
        cout << "ca info" << endl;
    }
};

class CB:public CA
{
public:
    virtual void print()
    {
        cout << "cb print" << endl;
        info();
    }
    virtual void info()
    {
        cout << "cb info" << endl;
    }

};
int main()
{
    CB *cb = new CB;
    CA *ca = (CA *)cb;
    ca->print();

    return 0;
}

输出结果 记住是调用指针指向类型的函数而不是基类的
UX@G7~PL$Y}_FSNW3E@A@9A.png

最后修改:2018 年 02 月 04 日 03 : 15 PM