问个指针的指针的取地址类型的问题
最近在搞OGRE,用到这样一个函数,无奈指针不是很精通,函数如下
virtual int getCollisions(CollisionObject *collObj, CollisionPair **&cpPtr);
最后一个参数,**&cpPtr
我在调用它的时候是申明了一个CollisionPair **otherobject;类型,然后
getCollisions(c_suncollision.m_pCollisionContext->getAttachedObject("Hand"),otherobject);
这样没有问题,允许成功,然后我调试的时候也看了otherobject中的所有变量值都是正确的,好了,现在我想拿里面的变量来使用
不管我是
otherobject.
还是otherobject->distance;
都给我报错
“->distance”的左边必须指向类/结构/联合/泛型类型
“.distance”的左边必须指向类/结构/联合/泛型类型
[解决办法]
otherobject是指针的指针类型,所以你要得到其变量,应该用
*otherobject->distance
*otherobject才是CollisionPair类的指针类型
[解决办法]
*otherobject->distance
这么用才行。
[解决办法]
这样写更清晰: (*otherobject)->distance;
或 (**otherobject).distance;
[解决办法]
(*otherobject)->distance;
[解决办法]
取地址只是参数传递时指定为引用类型,不需要定义一个引用类型的变量
[解决办法]
一个引用,不是什么取地址,1楼的方法,你可以尝试一下。