demo_2_review_valuate_compatible_rule_1.cpp
来自「对于一个初涉VC++的人来书」· C++ 代码 · 共 46 行
CPP
46 行
//***************************************************
// 赋值兼容规则-隐式类型转换
//***************************************************
#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 main() //主函数
{
A a; //声明A类对象
B b; //声明B类对象
A *pA; //声明A类指针
pA=&a; //A类指针指向A类对象
fun(pA);
pA=&b; //A类指针指向B类对象,赋值兼容
fun(pA);
fun((B *)pA); //显式强制类型转换,
//但参数传递时赋值兼容隐式类型转换为基类指针
fun(&b); //参数传递时,赋值兼容
B *pB=&b;
fun(pB); //参数传递时,赋值兼容
return; //全部执行结构都是:A::display()
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?