[C++][基础知识1] 冲 突一 冲 突如果一个派生类的不同的基类之间有共同的成员,则在派生类中便出现了成员同
[C++][基础知识1] 冲 突
一 冲 突
如果一个派生类的不同的基类之间有共同的成员,则在派生类中便出现了成员同名的情况,从而造成成员访问的不惟一性,这种情况称为冲突。为了解决此类问题,可以在访问同名的成员时用作用域运算符”::”指定其所属的类。例如:
#include<iostream.h>class A{public:int a;A(int x){a=x;}};class B:public A{public:int a;B(int x,int y):A(y){a=x;}};class C:public B{public:C(int x,int y):B(x,y){}int getaa(){return A::a;}int getba(){return B::a;}};void main(){C c1(1,2);cout<<c1.B::A::a<<'\n';//A行cout<<c1.B::a<<'\n'; cout<<c1.getaa()<<'\n'<<c1.B::a<<'\n'; //B行}程序编译指出A行语句出错,运算符“::”不能连续使用,要解决这种情况,可以
类C中增加一个取值函数getaa(),这样,B行的输出就不存在这种情况。
