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

📄 00064.cpp

📁 通过一些基础的程序
💻 CPP
字号:
#include <iostream>
using namespace std;

class B0	//基类B0声明
{
	public:	//外部接口
	virtual void display()
	{   
		cout<<"B0::display()"<<endl;
	}	//虚成员函数
};


class B1: public B0	             //公有派生,B1是B0的儿子,他可以使用void display()函数
{
	public:
	void display()
	{    
		cout<<"B1::display()"<<endl;
	}	//虚成员函数
};

class D1: public B1	             //公有派生,D1是B1的儿子,是B0的孙子,他也可以使用
{
	public:
		void display()
		{  
			cout<<"D1::display()"<<endl;
		}	//虚成员函数void display()函数
};

void fun(B0 *ptr)	//普通函数
	{
		ptr->display();
	}
int main()	//主函数
{
	B0 b0,*p;	//声明基类对象和指针
	B1 b1;		//声明派生类对象
	D1 d1;		//声明派生类对象
	p=&b0;
	fun(p);		//调用基类B0函数成员
	p=&b1;
	fun(p);		//调用派生类B1函数成员
	p=&d1;
	fun(p);		//调用派生类D1函数成员
}
//从上述可以看出对象在调用时候是动态联编的
//因为三代都有display()函数
//但是调用的时候是分别调用的各自(继承后)的display()函数
//根据输出的标记可以判断
//尽管三个的函数名称都叫void display(),但是实现了智能选择
//则说明了是动态联编的

⌨️ 快捷键说明

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