首页 > 编程语言 > 详细

C++ 编译多态 运行多态

时间:2016-01-10 15:43:05      阅读:273      评论:0      收藏:0      [点我收藏+]
多态是什么?简单来说,就是某段程序调用了一个API接口,但是这个API有许多种实现,根据上下文的不同,调用这段API的程序,会调用该API的不同实现。今天我们只关注继承关系下的多态。

#include <iostream> #include <stdio.h> using namespace std; class Father { public: int m_fid; Father() { m_fid = 1; } virtual void v_print() { printf("Father v_print() %d\n", m_fid); } void print() { printf("Father print() %d\n", m_fid); } }; class Child : public Father { public: int m_cid; Child() { m_cid = 2; } void v_print() { printf("Child v_print() %d:%d\n", m_fid, m_cid); } void print() { printf("Child print() %d:%d\n", m_fid, m_cid); } }; int main(void) { Father *f = new Father(); Father *fc = new Child(); Child *c = new Child(); Child *cf = (Child*)new Father(); f->print(); f->v_print(); fc->print();//静态 fc->v_print();//动态 c->print(); c->v_print(); cf->print();//静态 cf->v_print();//动态 return 0; }

 运行结果为:

技术分享
Father print() 1
Father v_print() 1
Father print() 1
Child v_print() 1:2
Child print() 1:2
Child v_print() 1:2
Child print() 1:0
Father v_print() 1
View Code

 

C++ 编译多态 运行多态

原文:http://www.cnblogs.com/yaling/p/5118483.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!