c++中关于类型兼容性规则的介绍
来源:互联网 发布:网易新闻app数据抓取 编辑:程序博客网 时间:2024/05/01 03:23
类型兼容性规则: 在需要基类对象的任何地方,都可以用公有派生类的对象来替代
其替代主要包括一下情况
1)派生类的对象可以赋值给基类的对象
2)派生类的对象可以初始化基类的引用
3)派生类对象的地址可以赋给指向基类的指针(这里常用)
下面将以实例一一介绍:
类的实现部分:
class B
{……}
class D :public B
{……}
类的调用部分:
B b1,*pb1;
D d1;
1)派生类赋值给基类对象:b1=d1;
2)派生类对象初始化基类对象的引用:B& b=d1;
3)派生类对象的地址也可以赋给指向基类的指针:pb1=&d1;
在替代之后,派生类对象就可以作为基类的对象使用,但只能使用基类继承的成员
实例:
#include<iostream>
using namespace std;
class B0
{
public:
void display()
{
cout<<"B0::display()"<<endl;
}
};
class B1:public B0
{
public:
void display()
{
cout<<"B1::display()"<<endl;
}
};
class D1:public B1
{
public:
void display()
{
cout<<"D1::display()"<<endl;
}
};
void fun(B0 *ptr)
{
ptr->display();
}
int main()
{
B0 b0;
B1 b1;
D1 d1;
B0 *p;
p=&b0;
fun(p);
p=&b1;
fun(p);
p=&d1;
fun(p);
return 0;
}
运行结果:
B0::display()
B0::display()
B0::display()
类型兼容性事多态性的重要基础之一,
这样通过“对象名.成员名”或者“对象名->成员名”的方式,就应该可以访问到个派生类中新添加的同名成员
- c++中关于类型兼容性规则的介绍
- C/C++中自动类型转换的规则
- 关于c中&的返回值类型
- 关于SQL Text类型兼容性
- C 关于C中布尔类型的总结
- 关于MIME类型的介绍
- [C++] 类型兼容规则
- C语言中类型转换时的截取规则及补码表示的计算方法
- 关于j2ee的兼容性
- sqlite中text类型的比较规则
- C/C++中关于含有无符号类型的表达式
- objective-c中关于类型编码的解释
- 锁的类型和兼容性
- 关于C的声明规则解析
- C++中类型兼容规则实例
- js中关于IE与DOM对浏览器的兼容性
- 前端开发中关于浏览器兼容性的部分问题
- 关于C语言中char FAR *p;定义的介绍
- Java实现多个客户端聊天程序
- Hadoop中文件读写(Java)
- Gstreamer实现摄像头的远程采集,udp传输,本地显示和保存为AVI文件 接收保存显示端
- mysql修改密码以及忘记密码
- addslashes函数转义的安全性分析
- c++中关于类型兼容性规则的介绍
- printk 效率好低,能快点不?
- Android开发之EditText属性详解
- 贪心算法之区间选点
- 泛型二——原类型(Java tutorial SE7 翻译)
- MapReduce:详解Shuffle(copy,sort,merge)过程
- ant release
- web.xml中的url-pattern的映射规则
- 100个windows平台C++开发错误之十九Warning