程序结果

来源:百度知道 编辑:UC知道 时间:2024/06/23 17:24:56
class A {
public:
virtual void func() { cout << “I am in base” << endl; };
}
class B : public A {
public:
virtual void func() { cout << “I am in derived” << endl; }
}
void main()
{
B* bb = new B;
bb->func();
A* aa = (A*)bb;
aa->func();//调用的是哪个fun()
….
}

是派生类的func()
一个类的虚函数,是由new它的类决定的。

比如定义新类
class C : public A {
public:
virtual void func() { cout << "I am C" << endl; }
};
在主函数中作以下调用

A* dd = new C;
dd->func();
A* ee = (B*)dd;
ee->func();
你会发现结果相同。即都为"I am C"

virtual void func() { cout << “I am in base” << endl; };