派生类可以定义一个和基类成员同名的成员,这叫覆盖。 在派生类中访问这类成员时,缺省的情况是访问派生类中定义的成员。 要在派生类中访问由基类定义的同名成员时,要使用作用域符号::。
class base {
int j;
public:
int i;
void func();
};
class derived :public base{
public:
int i;
void access();
void func();
};
void derived::access() {
j = 5; //error
i = 5; //引用的是派生类的 i
base::i = 5; //引用的是基类的 i
func(); //派生类的
base::func(); //基类的
}
derived obj;
obj.i = 1;
obj.base::i = 1;
C的错误为不应该是重复定义,应该是重载
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)