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

📄 demo_3_polymorphism_virtual_function_1_a.cpp

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

//*****************************************************
// 多态性和虚函数-赋值兼容规则下的对象调用和指针调用
//*****************************************************

#include <iostream.h>

class Member
{
public:
	void show() 
	{ 
		cout<<"I am a member.\n"; 
		return;
	}
	
};

class Teacher:public Member
{
public:
	void show()
	{ 
		cout<<"I am a teacher.\n"; 
		return;
	}	 
};

class Student:public Member
{
public:
	void show()
	{ 
		cout<<"I am a student.\n"; 
		return;
	}	 
};

void main()
{
	Member member;
	Teacher teacher;
	Student student;

	member.show();

	teacher.show();
	teacher.Member::show();

	student.show();
	student.Member::show();

	Member *pM;
	pM=&member;
	pM->show();
	pM=&teacher;
	pM->show();
	pM=&student;
	pM->show();

	Teacher *pT;
	pT=&teacher;
	pT->show();
	pT->Member::show();
//	pT=&member; //Error: '=' : cannot convert from 'class Member *' to 'class Teacher *'
	((Member *)pT)->show();

	Student *pS;
	pS=&student;
	pS->show();
	pS->Member::show();
//	pS=&member; //Error: '=' : cannot convert from 'class Member *' to 'class Teacher *'
	((Member *)pS)->show();

	return;
}

/*
I am a member.
I am a teacher.
I am a member.
I am a student.
I am a member.
I am a member.
I am a member.
I am a member.
I am a teacher.
I am a member.
I am a member.
I am a student.
I am a member.
I am a member.
*/

⌨️ 快捷键说明

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