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