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 类。
您使用指向该对象的指针,因此您不必定义完整的对象结构,只需在使用前在此文件中声明它即可:
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)