我正在尝试跟随网络上的这个例子,该例子引导我使用以下代码:
EquipmentCollection.h(头文件)
我的错误在源文件中是
EquipmentCollection.h(头文件)
#ifndef EQUIMENTCOLLECTION_H_
#define EQUIMENTCOLLECTION_H_
#include "Equipment.h"
#include <vector>
class EquipmentCollection : public Equipment {
public:
static void add( Equipment* );
static vector<Equipment*>& get();
~EquipmentCollection();
private:
static vector<Equipment*>* equipmentList;
};
#endif /* EQUIMENTCOLLECTION_H_ */
EquipmentCollection.cpp(源文件)
#include "EquipmentCollection.h"
void EquipmentCollection::add( Equipment* equipment ) {
if( equipmentList == NULL ) {
equipmentList = new vector<Equipment*>();
}
equipmentList->push_back( equipment );
}
vector<Equipment*>& EquipmentCollection::get() {
return *equipmentList;
}
EquipmentCollection::~EquipmentCollection() {
delete( equipmentList );
}
我的错误在源文件中是
return *equipmentList;
,这给了我undefined reference to "EquipmentCollection::equipmentList"
的错误。我不知道为什么会出现这个错误。
main()
方法中创建实例,那么这个问题就会得到解决,对吗?至于第二个问题。我正在学习单元测试来避免这种情况。这就是这个例子的目的。我说的对吗? - user2785929