C++ 多态
2010-07-05 09:50
246 查看
之前看过的文章,大多说如果基类的成员函数没有声明为virtual,派生类对该成员函数重新定义就没有起到多态作用。
根类没有声明为virtual,派生类声明为virtual的情况,并没有过多的介绍。
其实,更确切的说法应该是这样的:在继承层次中,成员函数从声明为virtual以后,往下继承就表现出多态。
以上代码的输出结果是:
class A
calss C
根类没有声明为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++】对象函数的覆盖、重载、多态
- C++中的多态和继承
- C++多态的实现
- C++中多态总结
- C++中多态实现机制
- 关于C++中的 多态 问题
- C++赋值兼容规则和多态
- C++ 类的多态二(函数重载--函数重写--函数重定义)
- C++ — 继承和多态的基础虚函数类
- C++ 继承与多态
- C++对象布局及多态实现探索之内存布局
- C++中的多态-虚函数-纯虚函数-抽象类
- c++ 多态
- C++多态的实现原理
- C++多态、继承的简单分析
- C++箴言:理解隐式接口和编译期多态
- C++ 什么是多态
- More Effective C++ 条款3 绝对不要以多态(polymorphically)方式处理数组
- C++ 多态
- C++总结笔记(一)抽象、多态、继承