📄 demo_2_review_valuate_compatible_rule_4_attention.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 + -