C++多继承的研究
2015-09-29 19:48
309 查看
#include "stdafx.h" #include <iostream> using namespace std; class GrandMa { public: GrandMa(); void Show(); }; class Mather :public GrandMa { public: Mather(); }; class Father { public: Father(); void Show(); }; class Boy :public Father, public Mather { }; class Girl :public Mather, public Father { }; GrandMa::GrandMa() { cout << "GrandMa" << endl; } void GrandMa::Show(){ cout << "GrandMa' Show" << endl; } Mather::Mather() { cout << "Mather" << endl; } Father::Father(){ cout << "Father" << endl; } void Father::Show() { cout << "Father's Show" << endl; } int main() { Boy boy; //cout << "Boy:" << boy.Show() << endl; Girl girl; return 0; }
问了解答两个问题:
1,多继承的时候先调用哪个父类的构造函数?
2,如果调用子类的一个方法,两个父类都有怎么办?
从上面的结果看出来构造是按照声明的顺序,如果一个方法多继承则无法调用
进一步的研究表明,如果Father也继承了GrandMa,那么GrandMa的构造函数会调用两次
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- PostgreSQL教程(三):表的继承和分区表详解
- Lua中调用C++函数示例
- Lua面向对象之类和继承浅析
- Lua教程(一):在C++中嵌入Lua脚本
- 浅析Ruby中继承和消息的相关知识
- Lua教程(二):C++和Lua相互传递数据示例
- 设计引导--一个鸭子游戏引发的设计理念(多态,继承,抽象,接口,策略者模式)
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例