int main()
{
	//

	Parent p1;
	p1.printP();

	child c1;
	c1.printC();
	c1.printP();


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

	//1-2 指针做函数参数

	howToPrint(&p1);
	howToPrint(&c1);

	//1-3 引用做函数参数
	howToPrint2(p1);
	howToPrint2(c1);


	//第二层含义

	//可以让子类对象初始化父类对象
	//子类就是一种特殊的父类
	Parent p3 = c1;

	return 0;
}
void howToPrint2(Parent &base) // 父类引用
{
	base.printP(); //父类的 成员函数 
}