gpt4 book ai didi

c++ - 访问作为指向该类的指针 vector 包含的类的方法

转载 作者:行者123 更新时间:2023-11-28 02:37:49 25 4
gpt4 key购买 nike

我有一个指向对象的指针 vector ,定义为:

 std::vector<queuedImage*> imgBuffer;

我通过引用将它传递给类的构造函数:

processThread::processThread(std::vector<queuedImage*> &queueRef);

在我定义的类 processThread 中:

std::vector<queuedImage*> *q;

然后在构造函数中我进行赋值:

q = &queueRef;

当我访问已经填充了对象的 vector 元素时, vector 的大小在访问时符合预期:

int qSize = q->size();

这让我认为这应该是有效的:

q[0]->getData()

其中 getData 是 queuedImage 的成员。

但是,当我编译它时,它显然是无效的:

error: base operand of ‘->’ has non-pointer type ‘std::vector<queuedImage*>’

但是当我使用 .运算符代替:

q[0].getData()

我得到编译错误:

error: ‘class std::vector<queuedImage*>’ has no member named ‘getData’

我认为我一定是错误地访问了该方法,但我不确定该怎么做。有人有什么想法吗?

谢谢!

最佳答案

当您执行 q[0] 时,您没有访问 vector 的第一个元素,您实际上是在取消引用指针。 q[0] == *q == vector 。

您要做的是在 q 指向的 vector 上调用 [0]。为此,您必须首先取消引用 q:

(*q)[0]->getData()

关于c++ - 访问作为指向该类的指针 vector 包含的类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26946303/

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