您的位置:首页 > 编程语言 > C语言/C++

C++ 多态

2010-07-05 09:50 246 查看
之前看过的文章,大多说如果基类的成员函数没有声明为virtual,派生类对该成员函数重新定义就没有起到多态作用。

根类没有声明为virtual,派生类声明为virtual的情况,并没有过多的介绍。

其实,更确切的说法应该是这样的:在继承层次中,成员函数从声明为virtual以后,往下继承就表现出多态。

 

#include <iostream>
using namespace std;

class A{
public:
void show(){
cout << "class A" << endl;
}
};

class B : public A{
public:
virtual void show(){
cout << "class B" << endl;
}
};

class C : public B{
public:
void show(){
cout << "class C" << endl;
}
};

int _tmain(int argc, _TCHAR* argv[])
{
A *pa;
pa = new B;
pa->show();

B *pb;
pb = new C;
pb->show();

return 0;
}


 

以上代码的输出结果是:

class A

calss C

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ class c