在类中使用向量

时间:2013-12-13 07:48:44

标签: c++ class vector

我正在尝试使用用户定义类型的类成员向量。

我的头文件如下:

class Sphere blah blah;

class Scene{  
public:
    std::vector<Sphere> Spheres; //Container of spheres.  
    LightSource Source;
};  

当我尝试然后访问此向量时,如下所示,我收到错误:

Scene AScene;

Sphere SampleSphere(0,-3,10,5);
(AScene.Spheres).push_back(SampleSphere); 

我要做的是创建一个包含一些内容的场景,包括一个球体矢量。我创建了一个场景(AScene),然后使用push_back为其添加球体。但这不起作用。我有所有必要的预处理程序指令,遗憾的是它并不那么简单。

错误是:

错误4错误LNK2019:未解析的外部符号“public:__thiscall LightSource :: LightSource(void)”(?? 0LightSource @@ QAE @ XZ)在函数“public:__thiscall Scene :: Scene(void)”中引用(? ?0Scene @@ QAE @ XZ)C:\ Users \ Stuart \ Desktop \ THE_PROJECT \ THE_PROJECT \ Source.obj THE_PROJECT

1 个答案:

答案 0 :(得分:2)

您没有链接图书馆。

LightSoruce在哪里定义? 如果它是一些外部库,则需要将该库链接到最终的二进制文件中。

如果它是您自己的库之一,则需要将目标文件链接到最终的二进制文件中。您也可能忘记声明LightSoruce::LightSource()的构造函数。

如果您在对象级别缺少符号,但在二进制或库中没有符号,则没有问题。

如果您使用gcc,您应该使用命令行中使用正确库名称的-llightsourcelib或类似内容。