【发布时间】:2011-06-01 13:14:26
【问题描述】:
在 C++ 中,我有一个基类 A,一个子类 B。两者都有虚拟方法 Visit。 我想在 B 中重新定义“访问”,但 B 需要访问每个 A(以及所有子类)的“访问”函数。
我有类似的东西,但它告诉我 B 无法访问 A 的受保护成员!但是 B 也是 A :-P
那么,我该怎么办?
class A
{
protected:
virtual Visit(...);
}
class B : public class A
{
protected:
vector<A*> childs;
Visit(...);
}
B::Visit(...)
{
foreach(A* a in childs)
{
a->Visit(...);
}
}
谢谢
【问题讨论】:
-
我无法从您的代码中看出 B 是 A 的子类。
-
你确定你在写 C++ 吗?在 C++ 中,没有 foreach 关键字。
-
foreach(A* a in childs)是什么?您的代码中是否有一些宏没有告诉我们。 -
@Charles 这是伪代码,就像访问必须返回一些东西,而你不能只是传递...
-
@CashCow:谢谢,下次我会更直接。
标签: c++ class virtual protected