[英]trying to initiate a class with a constructor that takes an argument
class token
{
private:
char m_chIcon; //actual ascii char that shows up for this token
location m_cPlayerLocation; // every token has a location
token() {}
public:
token(char icon) : m_chIcon(icon) {}
};
class board
{
private:
token m_cPlayer('@');
};
我嘗試了有無初始化列表。 從到目前為止的研究來看,似乎編譯器認為我正在嘗試使用返回類型標記聲明一個函數。 我還嘗試使用令牌以外的名稱來查看是否存在沖突。
我也在這條線上得到錯誤:
token m_cPlayer('@');
Error: expected type specifier
然后是m_cPlayer
下方的其他任何參考
錯誤:表達式必須具有類類型
我從我發布的內容中刪除了其他周圍的代碼,這些代碼我認為不會導致錯誤。
C ++ 03中的成員變量只能在函數內部初始化(例如,從構造函數中初始化):
class board {
private:
token m_cPlayer;
public:
board() : m_cPlayer('@') {}
};
1)您正在嘗試創建靜態字段。 那你應該寫
class board
{
private:
static token m_cPlayer;
};
// Then in **ONE** source file add.
token board::m_cPlayer('@');
2)您正在嘗試創建默認值。 那你應該寫
class board
{
private:
token m_cPlayer;
public:
board() : m_cPlayer('@') {}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.