派生类——覆盖(c++)

派生类——覆盖(c++),第1张

覆盖:

派生类可以定义一个和基类成员同名的成员,这叫覆盖。


在派生类中访问这类成员时,缺省的情况是访问派生类中定义的成员。


要在派生类中访问由基类定义的同名成员时,要使用作用域符号::。


基类和派生类有同名成员的情况:
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的错误为不应该是重复定义,应该是重载

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/634707.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-16
下一篇 2022-04-16

发表评论

登录后才能评论

评论列表(0条)

保存