这样写有什么隐患?
类A里面的test函数是普通函数
类B继承了A,并将test覆盖成虚函数
类C继承了B
现在把一个B类型的指针指向C类的一个对象
并通过该指针调用C类的test函数
下面测试结果说明调用成功了,
但不知道这样做会不会有什么隐患?
我看一般多态的代码都是在基类里面就定义了test是虚函数,
很少看到像我这样,中间层才把它改成虚函数的
是不是这样做有什么问题呢?
[code=C/C++]
int class_test()
{
class A
{
public:
int test()
{
cout << "A" << endl;
return 1;
}
};
class B: public A
{
public:
virtual int test()
{
cout << "B" << endl;
return 2;
}
};
class C: public B
{
public:
int test()
{
cout << "C" << endl;
return 3;
}
};
B *pb = new C;
cout << pb->test() << endl;
delete pb;
return 0;
}
[code]