c++多继承机制
来源:互联网 发布:淘宝要怎么运营 编辑:程序博客网 时间:2024/06/14 18:21
由于两义性问题的根源在公共基类,因此需要从公共基类着手,将公共基类说明为虚基类,就可以避免二义性。代码如下:
#include<iostream>
using namespace std;
class human
{
public:
void speak(){cout<<"人类可以说话"<<endl;}
};
class father : virtual public human
{
public:
void stand(){cout<<"父亲可以站立"<<endl;}
};
class mother : virtual public human
{
public:
void clean(){cout<<"母亲可以洗衣服"<<endl;}
};
class son : public father ,public mother
{
public:
void school(){cout<<"孩子还在上学"<<endl;}
};
int main()
{
son Tom;
Tom.stand();
father *fp = NULL;
fp = new son;
fp->speak();
//fp->school();
/*son *Fs = NULL;
Fs = new father;*/
/*用基类指针指向一个派生类对象时,由于派生类对象也是基类的对象,因此这种指向是安全的,但只能访问基类所
拥有的成员*/
return 0;
}
注意:一、father 和mother在继承时将human说明为虚基类,也就是只为子类son生成一个speak函数,speak函数是惟一的,避免了二义性。
二、派生类指针不能直接指向基类对象。
三、派生类指针必须强制转换成基类指针后才可指向基类。
谢谢大家!祝大家心情愉快。
PS:我的第一篇博文。
- Objective-C继承机制
- Objective-C继承机制
- c++多继承机制
- 继承成员访问控制机制(C++)
- C++(笔记)浅谈什么是继承机制
- C++(笔记)三种继承机制
- 继承机制
- 继承机制
- 继承机制
- 继承机制
- 继承机制
- objective C多继承
- 【c++】多继承
- [c++]多继承
- C++_多继承
- objective-c 继承机制 (从runtime的角度)
- 纯C语言实现简单封装继承机制
- 【c++】继承机制中的构造器和析构器
- (转载)uva题目难度分级列表
- ActionBar with Tab
- qt4.7 字体字号设设置;中文乱码,
- C++中的接口设计
- 装饰模式——Decorator
- c++多继承机制
- struts2文件上传
- 体会break和continue的用法
- UITableView实现加载更多功能
- iOS 中CFUUIDRef、 CFUUIDCreate 、CFUUIDCreateString 生成唯一字符串
- CLisp 6:通过TCP/IP连接远程执行命令
- 什么是REST?以及RESTful的实现
- Android实现ListView圆角效果
- Ubuntu 10.04 右上角网络管理图标消失的解决办法