【发布时间】:2011-11-03 16:37:43
【问题描述】:
我面临需要访问父类中的子成员变量的情况。我知道这违反了 OO 原则,但我必须处理这样一种情况,即数百个类从一个类继承,并且其中一半停止使用父变量之一,并声明并使用自己的(需要切换从 int 到 int[] 并且显然这样做的人没有考虑在父类中应用此更改)。
一种选择是使用虚拟函数来处理它,但这意味着我必须更改数百个文件/对象中的代码并测试它们中的每一个。因此,我认为如果可以使用一些老式的 C 指针魔法来访问父方法中的这些变量,这将消除对数百个虚拟函数的需求。
基本上这就是我想要实现的目标:
class Parent
{
void DoSomething()
{
// This is what I need
childMember = 0;
}
}
class Child1 : Parent
{
int childMember;
}
class Child2 : Parent
{
int childMember;
}
如果这可能,请告诉我。如果是,我该如何实现。
欢迎其他建议,但请记住,我只想在父类中进行更改。
TIA。
【问题讨论】:
-
我已经修改了你的伪代码来证明有多个子类,而不仅仅是一个。希望没问题。
-
我删除了“c”标签,这不是 C 题。
-
往上面扔更多的脏东西不会让问题消失,你应该努力重构和收拾烂摊子。
-
所以你的意思是你所有的孩子班级都有那个成员?但是有不同的类型?
标签: c++ inheritance