简单指针问题
Simple Pointer Question
编辑:别介意,解决了。。。我在ClassB和ClassC中声明了类型。。。。
所以我在一个名为ClassA的类中有一个指针,名为PointA ClassA和ClassB都派生自ClassC,后者有一个名为类型的变量。 在代码的一部分中,我将ClassB的一个新实例分配给ClassAPointA变量。指针被声明为指向ClassC,其中ClassB派生自。 然后,我在OtherClass(无关(中有一个函数,看起来有点像: 我知道PointA正确地指向ClassB的实例。 当我使用指针时,我做错了什么,导致类型的值不正确?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需要是PointA定义要指向的东西的子类(typeof(*ClassA->PointA((,否则您试图做的事情将不起作用。
根据您的代码,ClassA
和ClassB
都有一个名为type
的成员。由于您可以使PointA
指向ClassA
对象或ClassB
对象,因此这些类之间必须存在父子关系(是否存在?(。如果是,您确定没有创建两个完全不相关的type
成员:一个在ClassA
中,另一个在ClassB
中吗?您希望检查ClassB::type
,但实际上检查的是ClassA::type
,这就是为什么您看到不同("错误"(的值。
您需要发布更多的代码,向我们展示类是如何声明的。根据你发布的内容,人们只能胡乱猜测。。。最重要的是,你发布的代码显然是"假的",也就是说,它不是你用来做实验的代码。ClassA->PointA->type
表达式甚至不会编译。张贴真实代码。
- 关于 c++ 函数中指针赋值的简单问题
- 链表指针问题
- C++ 关于指针取消引用的技术问题
- C++中的指针和常量问题不大
- 包含矢量指针的结构的内存释放问题
- 指针问题:从不兼容的类型"int"分配给"int *"
- 将字节数组转换为带有字节序问题的指针
- 关于如何使用指向主窗口的指针的 QT 问题
- 当成员值从指针更改为非指针时,C++常量问题
- 为什么循环会导致指针出现问题?
- 使用指针计算堆栈问题的大 O 表示法
- 构造函数 (C++) 中的 char 指针参数存在问题
- 指向包含对齐 C 结构C++类的 C 指针的对齐问题
- 涉及指针和手动实现的矩阵类的问题
- 从基指针到派生的强制转换问题
- 迭代器的指针操作问题
- 64 位迁移问题:指针更改
- C++模板使用问题指针
- 跳到C++第13章练习问题4-指针
- 用std::pair数组初始化std::map问题(指针错误?)