gpt4 book ai didi

c++ - QT中数组指针对象的指针

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:49:12 25 4
gpt4 key购买 nike

在 C++ 中,我有一个这样的对象数组指针:

vector<Articulation*> artic;

我有下一个问题。当我将该 vector 发送到另一个类时,如 &artic。所以我有指针而不是所有的数组都被复制了。问题是下一个。在新类(class)中,我有一些数组指针对象的概念

vector<Articulation*>* pArtic;

在新类(class)中,我执行 pArtic[i]->move()。该方法在 Articulation 中实现。当我执行方法 mov() 时,QT 告诉我类型 std::vector<_Ty> 没有运算符 ->。那是因为,我认为,我无法访问发音对象,并且我正在尝试对 vector 执行 move()。

有人知道我必须做什么才能访问发音对象并执行 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(),它是指向指针 vector 的指针。你要做的是在 vector 的位置 i 调用指针的移动方法。

(*pArtic)[i]->move()

这就是你想要做的,但是小心,我猜这不是很安全......

更好的方法是只提供引用 artic通过期待 vector<>&引用,而不是指针。

关于c++ - QT中数组指针对象的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18397207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com