学习 c++ 笔记 类的继承——类型的兼容性原则

#include "iostream"
using namespace std;

class Parent
{
public:
 void printp()
 {
  cout << "I am the father" << endl;
 } 
protected:
private:
};
class Child :public Parent
{
public:
 void printc()
 {
  cout << "I am the child " << endl;
 }
protected:
private:
};
/*  兼容性原则 所指的替代包括以下几种情况
1 子类对象可以当父类对象使用
2 子类对象可以直接复制父类对象
3 子类对象可以直接初始化父类对象
4 父类指针可以直接指向子类对象
5 父类应用可以直接引用子类对象*/
void howtoPrint(Parent *p)
{
 p->printp();
}
void howtoPrint2(Parent &p)
{
 p.printp();
}

void main()
{
 Parent p1;
 p1.printp();
 Child c1;
 c1.printc();
 c1.printp();
 //赋值兼容性原则
 // 1-1 基类指针  (引用) 指向子类对象
 Parent * p = NULL;
 p = &c1;
 p->printp();  //只能指向父类的函数
 //p->printc();
 //1-2 指针做函数参数
 howtoPrint(&p1);
 howtoPrint(&c1);
 //1-3 引用做函数参数
 howtoPrint2(p1);
 howtoPrint2(c1);

//2-1  子类对象可以直接初始化父类对象
 Parent p2 = c1;

system("pause");
return ;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值