#include <iostream>
#include <string>
using namespace std;
/*---------------------------------
13-11在虚函数中使用成员名限定
---------------------------------*/
class A
{
public:
virtual int get()
{return 0;}
};
class B:public A
{
public:
int get()
{return 1;}
};
int main()
{
B b;
A *p=&b; //子类对象赋给基类指针 ,由于父类是个虚函数,故动态联编,调用子类自身的同名函数
cout<<p->get()<<endl; //动态联编, 调用子类的同名函数
cout<<p->A::get()<<endl; //使用成员名限定可以强制解除动态联编, 调用父类的函数
cout<<"-------------"<<endl;
B *p1=&b; //子类对象赋给子类自身类型的指针
cout<<p1->get()<<endl;
return 0;
}
运行结果:
1
0
-------------
1
Press any key to continue
C++ 虚函数 7--在虚函数中使用成员名限定 可以强制解除动态联编
最新推荐文章于 2022-07-19 17:13:12 发布