您的位置:首页 > 其它

域限定符解决子类中调用父类重名函数问题

2009-12-25 00:47 453 查看
如果一个类C继承了A和B,并且AB拥有一个同名同类型函数。而C没重写AB这个函数时,该会继承哪一个呢?

还是连个都继承?如果两个都继承,该如何调用?

看下面的例子代码:

#include <iostream>
using namespace std;
// 类 A
class A
{
public:
void show(){
cout<<"in A."<<endl;
}
};
// 类 B
class B
{
public:
void show(){
cout<<"in B."<<endl;
}
};
// 类 C 继承自 A 和 B
class C
:public A
,public B
{
public:
void show(){
cout<<"in C."<<endl;
}
};
// 入口函数
int main(int argc,char **argv)
{
C c;
// 调用 A 声明的函数
c.A::show();

// 调用 B 声明的函数
c.B::show();

// 调用 C 自己的函数 方式1
c.C::show();
// 调用 C 自己的函数 方式2
c.show();
return 0;
}


是不是很诡异?~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: