基类和派生类中的同名对象不会被标记为错误

2024-03-03

class Base
{
public:
 type1 m_Pants;
};

class Derived : Base
{
public:
 type2 m_Pants
};

这本质上并没有被标记为错误,而是在整个项目中造成了各种破坏和问题。

有谁知道不会标记这一点的技术细节?


它不会被标记为错误,因为它不是错误。没有任何规定说派生类中的成员不能与基类中的成员命名相同。

如果你有一个对象obj类型的Derived, then obj.m_Pants指的是m_Pants in Derived。如果您想引用基本成员,可以使用obj.Base::m_Pants.

如果您是以下组织的成员函数Base或有一个Base*指向一个类型的对象Derived, then m_Pants总是指以下成员Base,因为在这些情况下没有该类的知识Derived及其成员。

嗯,这不是代码错误;而是代码错误。这几乎可以肯定是一个设计错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基类和派生类中的同名对象不会被标记为错误 的相关文章

随机推荐