fre*_*rap 3 c++ static vector definition undefined-reference
我在使用向量时得到一个未定义的引用。
这是错误:
/tmp/ccYnTr05.o: In function `TourManager::addCity(City)':
tsp.cpp:(.text._ZN11TourManager7addCityE4City[TourManager::addCity(City)]+0x1c): undefined reference to `TourManager::destinationCities'
/tmp/ccYnTr05.o: In function `TourManager::getCity(int)':
tsp.cpp:(.text._ZN11TourManager7getCityEi[TourManager::getCity(int)]+0x14): undefined reference to `TourManager::destinationCities'
/tmp/ccYnTr05.o: In function `TourManager::numberOfCities()':
tsp.cpp:(.text._ZN11TourManager14numberOfCitiesEv[TourManager::numberOfCities()]+0x5): undefined reference to `TourManager::destinationCities'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
这是代码片段:
class TourManager
{
private:
static vector<City> destinationCities;
public:
static void addCity(City city)
{
destinationCities.push_back(city);
}
static City getCity(int index)
{
return (City)destinationCities.at(index);
}
static int numberOfCities()
{
return (int)destinationCities.size();
}
};
Run Code Online (Sandbox Code Playgroud)
我意识到向量尚未初始化为值,但向量不是动态分配内存的吗?我不知道如何解决这个未定义的参考问题?是向量的问题还是别的什么?谢谢。
您只将向量声明为静态数据成员,但您还需要在类之外定义它。例如
vector<City> TourManager::destinationCities;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4037 次 |
| 最近记录: |