我得到了錯誤:類錯誤,預計;前(令牌
expected ';' before '(' token.
這究竟是爲什麼我怎樣才能解決這個問題
#include <iostream>
class AB {
int n;
AB(int x) { n = x;}
};
class ED {
AB blee(1);
};
我得到了錯誤:類錯誤,預計;前(令牌
expected ';' before '(' token.
這究竟是爲什麼我怎樣才能解決這個問題
#include <iostream>
class AB {
int n;
AB(int x) { n = x;}
};
class ED {
AB blee(1);
};
這是最有可能被解析錯誤和失敗?
AB blee(1);
如果你想初始化一個類型爲AB
的數據成員,你不能這樣做。在C++ 11中,你可以這樣做:
AB blee{1};
或
AB blee = 1;
或者,您可以在ED
的構造(S)做到這一點。這適用於C++ 11和C++ 03。
class ED {
ED() : blee(1) {}
AB blee;
};
你想用你的AB blee(1);
做什麼?它既不是函數聲明,也不是函數調用。要調用一個函數,你可以把它放在ED
的某個成員的主體中,並且離開AB
,只留下blee(1);
。
要聲明一個功能,你需要把一個類型(例如,int
)的括號內:AB blee(int);
我的目標是實現當我調用主函數ED對象;'使object.blee.n = 1 – user2085124 2013-02-18 23:40:24
必須通過構造函數通過成員初始化實例:
class ED {
ED() : blee(1) {}
AB blee;
};
如果你沒有C++ 11,你只有*必須*做到這一點。 – juanchopanza 2013-02-18 23:31:20
如果寫入AB blee = 1我得到錯誤:非整數類型「AB」的靜態數據成員的無效類初始化 也如果寫入 – user2085124 2013-02-18 23:29:55
@ user2085124您是否具有C++ 11支持? – juanchopanza 2013-02-18 23:30:27
我正在編譯DevC++,而不是GCC,所以我認爲不是 – user2085124 2013-02-18 23:32:05