在C ++中,我有一个对象的数组指针,如下所示:
vector<Articulation*> artic;
我有下一个问题。当我将该向量发送到&artic之类的另一个类时。所以我有指针,而不是所有的数组都重复。问题是下一个。在新类中,我有一个数组指针对象
vector<Articulation*>* pArtic;
在新类中,我执行pArtic [i]-> move()。该方法是在发音中实现的。当我执行mov()方法时,QT告诉我std :: vector <_Ty>类型没有运算符->。我认为这是因为我无法访问Articulation对象,并且试图在矢量上进行move()。
任何人都知道我必须做些什么才能加入Articulation对象并执行move()方法?
例子:
A类:
vector<Articulation*> artic;
void A::initVector(){...}
void A::sendInfoToB(){
B nuevo();
B.send(&artic);
}
B类:
vector<Articulation*>* pArtic
void B::send(vector<Articulacion*>* art){
pArtic=art;
}
void B::sendToC()
{
C nuevo();
C->sendTheLast(pArtic);
}
C级:
void C::sendTheLast(vector<Articulation*>* artic)
{
string data=artic[i]->move();
//Move returns a String
}
就是这个例子。
问题是,您正在调用pArtic的第i个位置的方法move(),该方法是指向指针向量的指针。您要执行的操作是在向量的位置i处调用指针的方法移动。
(*pArtic)[i]->move()
那就是你想要做的,但是要小心,我猜这不是很安全。
更好的方法是artic
通过期望vector<>&
引用而不是指针来仅放弃引用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句