C++中派生类如何使用基类中的数据成员
由于派生类中继承了基类的数据成员,我给派生类的成员赋值后,用get()函数调用基类中的相同的数据成员,结果返回值仍然是派生类的数据,这是怎么回事?...
由于派生类中继承了基类的数据成员,我给派生类的成员赋值后,用get()函数调用基类中的相同的数据成员,结果返回值仍然是派生类的数据,这是怎么回事?
展开
3个回答
展开全部
派生类中继承了基类的数据成员,只有基类中的受保护或者公有数据成员在被进行保护或公有继承时才能被派生类访问到。基类的私有成员是不可能被派生类访问到的。你用get()函数访问基类中的相同的数据成员,但是派生类既然已经继承了基类,自然基类的数据成员也继承了,这时候你访问的派生类的成员(不是你派生之后又添加的成员)时,实际上访问的就是基类的成员啊。当然从实质上来看就是派生类的成员。
追问
但是我想访问的是基类的成员的数据啊,,,应该怎样修改呢?
追答
如果基类有保护数据成员A,而派生类继承了成员A,假设公有继承,并且派生类又添加了新的数据成员B,这个时候,A和B都已经成为了派生类的数据成员了,但是基类和派生类如果要对它们进行访问,就是要分别建立各自的对象,派生类的对象自然访问的就是A和B这两个其自身的数据成员了,但是他不能访问基类对象中的数据成员。因为它们是分属不同的类。你想访问的基类成员是指访问基类对象中的数据吧,这个肯定不行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询