⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo_2_review_valuate_compatible_rule_4_attention.cpp

📁 对于一个初涉VC++的人来书
💻 CPP
字号:

//***************************************************
// 赋值兼容规则-隐式类型转换
//***************************************************

#include <iostream.h>

class A //基类A声明
{
public:
	void display(){cout<<"A::display()"<<endl;}
};

class B: public A //公有派生类B声明
{
public:
	void display(){cout<<"B::display()"<<endl;}
};

//注意函数重载调用的顺序(实参形参赋值兼容可以重载)
//首先调用直接匹配的函数
//其次调用类型转换后间接匹配的函数(赋值兼容)

void fun(A *ptr) //普通函数,参数为指向基类A对象的指针
{				
	ptr->display();	//对象指针->成员名
}

void fun(B *ptr) //普通函数,参数为指向一级派生类B对象的指针
{				
	ptr->display();	//对象指针->成员名
}

void main()	//主函数
{
	A a; //声明A类对象
	B b; //声明B类对象

	fun(&a);       //A::display()
	fun(&b);       //B::display()

	A *pA; //声明A类指针

	pA=&a; //A类指针指向A类对象
	fun(pA);       //A::display()
	fun((B *)pA);  //B::display() 

	pA=&b; //A类指针指向B类对象
	fun(pA);       //A::display()
	fun((B *)pA);  //B::display()

	B *pB=&b; //声明B类指针

	fun(pB);       //B::display()
	fun((A *)pB);  //A::display()

	return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -