📄 00065.cpp
字号:
#include <iostream>
using namespace std;
class Lenovo //基类Lenovo声明
{
public: //外部接口
virtual void display()
{ cout<<"Lenovo"<<endl;
} //虚成员函数
};
class Lenovo_CQ: public Lenovo //
{
public:
void display()
{ cout<<"Lenovo_CQ"<<endl;
} //虚成员函数
};
class Lenovo_CD: public Lenovo_CQ //
{
public:
void display()
{ cout<<"Lenovo_CD"<<endl;
} //虚成员函数void display()函数
};
void fun(Lenovo *ptr) //普通函数
{
ptr->display();
}
int main() //主函数
{
Lenovo lenovo,*p; //声明基类对象和指针
Lenovo_CQ lenovo_cq; //声明派生类对象
Lenovo_CD lenovo_cd; //声明派生类对象
p=&lenovo;
fun(p); //调用基类Lenovo函数成员
p=&lenovo_cq;
fun(p); //调用派生类Lenovo_CQ函数成员
p=&lenovo_cd;
fun(p); //调用派生类Lenovo_CD函数成员
return 0;
}
//从上述可以看出对象在调用时候是动态联编的
//因为三辈人都有display()函数
//但是调用的时候是分别调用的各自(继承后)的display()函数
//根据输出的标记可以判断
//尽管三个的函数名称都叫void display(),但是实现了智能选择
//则说明了是动态联编的
//类的关键技术是各种功能在各自的模块完成
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -