将对象指针向量传递给类 (C++)

tan*_*bog 1 c++ containers class vector object

我有一个对象指针向量。

std::vector<myObject *> listofObjects;
Run Code Online (Sandbox Code Playgroud)

我想将它们传递给另一个需要访问它们的对象。

当我尝试执行以下操作时:

class NeedsObjects 
{
 public:
    NeedsObjects(std::vector<myObject *> &listofObjects)
 private:
    std::vector<myObject *> &listofObjects;
};
Run Code Online (Sandbox Code Playgroud)

然后在初始化列表中初始化向量我得到以下错误:

'myObject' was not declared in this scope
template argument 1 is invalid
template argument 2 is invalid
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我想要做的就是将一个向量传递给 NeedsObjects 类。

Gui*_*i13 5

您使用指向该对象的指针,因此您不必定义完整的对象结构,只需在使用前在此文件中声明它即可:

class myObject; // pre declaration, no need to know the size of the class
class NeedsObjects 
{
 public:
    NeedsObjects(std::vector<myObject *> &listofObjects)
 private:
    std::vector<myObject *> &listofObjects;
};
Run Code Online (Sandbox Code Playgroud)