簡體   English   中英

抽象類上未解析的外部符號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM