[英]Unresolved external symbol on abstract class
我有一堂課,看起來像這樣:
class Team
{
protected:
string name_;
Pixel color_;
static vector<Team>* teams_;
public:
string name() { return name_; };
Pixel color() { return color_; };
static void setTeams(vector<Team>* t) { teams_ = t; };
static vector<Team>* teams() { return teams_; };
}
它主要由獲取器/設置器組成。
它們在其他地方的主要設置如下:
Team::setTeams(&activeTeams);
但是我得到了錯誤:
unresolved external symbol "public: static class std::vector<class Team,class std::allocator<class Team> > * Team::teams_"
我懷疑它是因為teams_
vector沒有初始化,但是作為抽象類,永遠不要初始化它或調用其構造函數。 我該怎么辦?
具有static
的成員變量獨立於任何實例而存在。 因此,您必須對其進行初始化。
您的類是抽象的(在您的情況下,編譯器無法得知)這一事實不會改變任何事情。
因為在類聲明中有一個static
模板,所以應該像這樣在源代碼(即.cpp
)上對其進行初始化。
vector* Team::teams_ = new vector<Team>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.