【发布时间】:2011-08-15 06:29:24
【问题描述】:
编辑:没关系,解决了...我在 ClassB AND ClassC ....
中声明了类型所以我在一个名为 ClassA 的类中有一个名为 PointA 的指针。
ClassA 和 ClassB 都派生自 ClassC,其中有一个名为 type 的变量。
在一段代码中,我将 ClassB 的新实例分配给 ClassA 的 PointA 变量。指针被声明为指向ClassC,ClassB是从其中派生出来的。
然后我有一个函数,在 OtherClass(无关)中,看起来有点像这样:
void OtherClass::function_name(ClassA* A,ClassB* B) {
B->type; //displays the correct value of type
A->PointA->type; //displays the wrong value of type
(A->PointA)->type; //displays the wrong value of type
}
我知道 PointA 正确地指向了 ClassB 的实例。
我在使用指针时得到不正确的 type 值是怎么回事?
【问题讨论】:
-
ClassA 和 ClassB 有什么关系?您应该发布所有代码,包括类定义。
-
你试过
A->PointA->type吗? -
您没有发布足够多的代码。请看sscce.org
-
我还添加了一些代码...