如何将指向类的指针属性的指针作为双指针传递?
How to pass a pointer to class's pointer attribute as a double pointer?
我不知道如何正确地传递这个双指针。。。。我试过的都不管用。。。
class myClass{
MyClass *attribClass;
}
void derp(MyClass **myA) {
// recursively calls down classes....
derp(&(myA->attribClass)); // what am i doing wrong?
}
int main() {
MyClass *myClass = new MyClass;
myClass.attribClass = *whatever code to initialize a long linked list of MyClass's*;
derp(&myClass);
}
有几个问题:
class MyClass { // Change to "MyClass".
public: // Need to make it public or it can't be accessed by "derp()"
// Did you intend "derp()" to be a class member?
MyClass *attribClass;
}; // missing semicolon
void derp(MyClass **myA) {
// recursively calls down classes....
derp(&((*myA)->attribClass)); // what am i doing wrong?
}
在最后一个例子中,在访问attribClass
之前,您需要尊重myA
一次。
derp(&((*myA)->attribClass)); // what am i doing wrong?
myA
是一个指向指针的指针,因此您需要取消引用它来获得一个可以与之一起使用->
的指针,所以:
derp(&(myA->attribClass));
应该是
derp(&((*myA)->attribClass));
我假设您需要更改/设置指针的值。如果你不是,你可能不应该在这里使用双指针。
您需要对myA
进行额外的取消引用,它的类型为MyClass **
(而不仅仅是MyClass *
):
derp(&(*myA)->attribClass);
相关文章:
- 通过指向指针数组的指针访问子类的属性
- 重新检查时指针属性会更改
- 返回的指针属性中类实例上的矢量属性消失
- boost::spirit指针属性是用nullptr初始化的吗?
- 如何使用指针从另一个类访问属性
- 我想获取点的属性,它报告错误 C3867:"point::output_x":非标准语法;使用"&"创建指向成员的指针
- 使用智能指针属性创建资源库函数?
- 通过指针算法调用结构的结构属性
- C++对象共享属性 - 使用指针或引用
- C++ 使用成员函数返回结构体指针属性的值
- 指向结构的指针保留某些属性,同时将其他属性重置为零(使用 map)
- 当我初始化了指针属性 allready 时,如何将 QGraphicsItem 向下投射到创建的类?
- 如何使用boost::graph dijkstra的算法,如果顶点属性是指针?
- 提升属性树:使用指向节点及其父节点的指针删除节点
- 如果使用类的指针属性来访问堆,如何避免非标量类型的错误
- C++引用基类中的子类指针属性
- 返回泛型函数中对象的引用(具有指针或非指针属性)
- 用静态数组覆盖指针属性
- 如何将指向类的指针属性的指针作为双指针传递?
- 如何使用非指针属性的析构函数