C++多态
来源:互联网 发布:sql with树形 编辑:程序博客网 时间:2024/05/21 14:53
测试代码,理解C++的多态。
1、多态的实现机制,虚函数;
2、多态实现的三要素:1)继承,2)重写,3)虚函数
理解:
在C++中,多态的应用是很强大的,也是面试中必问的话题,所以在这里我想根据自己的理解总结一下:
在C++中要实现多态,以上的三要素必须满足,必要有父子类之间的继承关系,而且父类的函数必须是虚函数,在子类中必须重写父类的方法。例如下面的示例代码。
#include <iostream>using namespace std;class A{ public: //A(){cout << "this A\n";} //~A(){cout << "this ~A\n";} //A(const A&){cout << "this &A\n";} virtual void print(){cout << "this A\n";}};class B:public A{ public: //B(){cout << "this B\n";} //~B(){cout << "this ~B\n";} //B(const B&){cout << "this &B\n";} virtual void print(){cout << "this B\n";}};/*这是测试函数,参数是指向基类的指针*/void test(A *p){ p->print();}int main(void){ A aa;//创建基类对象 B bb;//创建子类对象 test(&aa);//调用测试函数 cout << "------------------\n"; test(&bb);//调用测试函数}
输出结果:
tsong@tsong:~/exc$ ./a.out this A------------------this Btsong@tsong:~/exc$
可以看出,当我们定义基类的指针指向不同的对象时,函数的输出结果是不一样的这就是多态的强大之处,也就是说,我们定义同一个接口(函数),在不同的子类中去重写它,此时我们的接口函数就会是动态调用的。
0 0
- [C/C++]多态
- C++--多态
- C++-----------------多态
- C 多态
- c++-->多态
- 【C++】多态
- 【C#】 多态
- 【C#】多态
- 【c++】多态
- 多态(C++)
- 【C++】多态
- <c++>多态
- C++--多态
- Objective-c 多态
- Objective-C多态
- Objective-C多态(二)
- Objective-C 多态
- C++ 多态
- Android常用控件--ListView的简单使用
- U-Boot源码——config.mk
- 最小二乘法及C++实现
- 链表
- First-Day 视频
- C++多态
- XML语言
- 【Mysql】理解MySQL——复制(Replication)
- JSON工具学习记录--FastJSON
- 决策树
- 两招让你成为很厉害的T型人才
- tomcat 配置https 访
- 深究AngularJS——自定义服务详解(factory、service、provider)
- 343. Integer Break