派生类覆盖(修改)基类成员

1、什么是覆盖?
派生类可以定义一个和基类成员同名的成员,这叫覆盖。在派生类中访问这类成员时,缺省的情况是访问派生类中定义的成员。要在派生类中访问由基类定义的同名成员时,要使用作用域符号::。
注意:一般来说,基类和派生类不定义同名成员变量。
2、举栗子

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(); //基类的
}

int mian(){
	derived obj;
	obj.i = 1;
	obj.base::i = 1;
}
posted @ 2019-12-05 09:29  江南又一春  阅读(421)  评论(0编辑  收藏  举报