C++ 继承之 类型兼容性原则

类型兼容性原则

    类型兼容原则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代。通过公有继承,派生类得到了基类中除构造函数、析构函数之外的所有成员。这样公有派生类就具备了基类的所有功能。凡是基类能解决的问题。公有派生类都可以解决。类型兼容原则中所指的替代包括以下情况

    1)子类对象可以当作父类对象使用

    2)子类对象可以直接赋值给父类对象

    3)子类对象可以直接初始化父类对象

    4)父类指针可以直接指向子类对象

    5)父类引用可以直接引用子类对象

在替代之后,派生类对象就可以作为基类的对象

#include<iostream>
using namespace std;

class parent
{
public:
	void printfP()
	{
		cout << "我是爸爸"<< endl;
	}
};
class child :public parent
{
public:
	void printfC()
	{
		cout << "我是儿子"<< endl;
	}
};
void printfM(parent *p)
{
	cout <<"我是printfM()" << endl;
}
void printfM1(parent &p)
{
	cout << "我是printfM1"<< endl;
}
/*类型兼容原则中所指的替代包括以下情况
    1)子类对象可以当作父类对象使用
    2)子类对象可以直接赋值给父类对象
    3)子类对象可以直接初始化父类对象
    4)父类指针可以直接指向子类对象
    5)父类引用可以直接引用子类对象
*/
void main()
{
	parent p1;
	p1.printfP();
	child c1;
	c1.printfC();
	c1.printfP();//子类对象调用父类中的函数

	//赋值兼容性原则
	//1、基类指针(引用) 指向对象
	parent *p = NULL;
	p = &c1;
	p->printfP();

	//指针做函数参数
	printfM(&p1);
	printfM(&c1);

	//引用做函数参数
	printfM1(p1);
	printfM1(c1);
	//引用做函数参数

	//第二层含义 用子类对象去初始化父类对象
	parent p3 = c1;
	system("pause");
}

使用,但是只能使用从基类继承的成员。类型兼容规则是多态性的重要基础之一

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值