介绍
本文介绍多继承基本操作(仅附源码 and 运行结果)
源码
#include<iostream>
#include<string>
using namespace std;
//基类 电话
class TelePhone
{
public:
TelePhone()
{
cout << "TelePhone构造" << endl;
}
//打电话函数
void Call()
{
cout << "打电话" << endl;
}
~TelePhone(){
cout << "TelePhone析构" << endl; }
int a;
};
//基类 照相机
class Camear
{
public:
Camear()
{
cout << "Camear构造" << endl;
}
//照相函数
void Photo()
{
cout << "照相" << endl;
}
~Camear(){
cout << "Camear析构" << endl; }
int b;
};
//基类 Ipad
class Ipad
{
public:
Ipad()
{
cout << "Ipad构造" << endl;
}
//听歌函数
void Music()
{
cout << "听音乐" << endl;
}
~Ipad(){
cout << "Ipad析构" << endl; }
int c;
};
//子类 苹果15(采用多继承继承基类功能)
class Iphone15 :public TelePhone, public Camear, public Ipad//内存分布是根据继承顺序来分布
{
public:
Iphone15()
{
cout << "Iphone15" << endl;
}
~Iphone15(){
cout << "Iphone15析构" << endl; }
};
void main()
{
//构造析构流程
{
//构造子类
Iphone15 ip15;
cout << "------------分隔符------------" << endl;
//调用基类函数
ip15.Call();
ip15.Music();
ip15.Photo();
cout << "------------分隔符------------" << endl;
}//子类释放
cout << "------------分隔符------------" << endl;
//拷贝子类对象操作
Iphone15 ip15;
TelePhone * pt = &ip15;
Camear * pc = &ip15;
Ipad * pi = &ip15;
cout << "------------分隔符------------" << endl;
//打印地址
cout << &ip15 <<" "<< pt << " " << pc << " " << pi << endl;
system("pause");
}
运行结果
TelePhone构造
Camear构造
Ipad构造
Iphone15
------------分隔符------------
打电话
听音乐
照相
------------分隔符------------
Iphone15析构
Ipad析构
Camear析构
TelePhone析构
------------分隔符------------
TelePhone构造
Camear构造
Ipad构造
Iphone15
------------分隔符------------
00AFFE60 00AFFE60 00AFFE64 00AFFE68
请按任意键继续. . .