看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) Win10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) vs2017 我要宣告一個類別成員為靜態成員 語法如下 可是彙編譯時報錯 請問一下 我要怎麼寫才會對 謝謝 https://i.imgur.com/o2xSLX8.jpg #include "pch.h" #include <iostream> #include <vector> using namespace std; class CAA { public: CAA(int data) { m_AA = data; } int m_AA; }; class CBB { public: static vector<CAA> m_AAs; void Test(int data) { CAA aa = CBB::m_AAs[data]; cout << aa.m_AA << endl; } }; int main() { for (int i = 0; i < 10; i++) { CBB::m_AAs.push_back(CAA(i)); } CBB b1; CBB b2; b1.Test(1); b2.Test(1); } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.141.239 (臺灣) ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.141.239 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1580826496.A.0A6.html ※ 編輯: su27 (220.135.141.239 臺灣), 02/04/2020 22:30:49
ctrlbreak: 樓下有看到code嗎? 我猜你宣告外還缺少實體... 02/04 22:33
貼上程式碼了 我把我的問題貼在MSDN結果有人回我 貼的程式碼 其實跟我寫的也一樣 我複製他的程式碼再貼上 還是報同樣的錯誤訊息 https://social.msdn.microsoft.com/Forums /zh-TW/ac8f958c-8581-4b8e-9846-e94f97b4a886?forum=234 ※ 編輯: su27 (220.135.141.239 臺灣), 02/04/2020 22:36:25
easterday: vector<CAA> CBB::m_AAs; //加上這句試試 02/04 23:26
成功了 謝謝
james732: 可以Google:c++ static member initialization 02/04 23:31
我看不出來問題點在哪 請問一下 static vector< class > 是不是我這種寫法 無法編譯 ※ 編輯: su27 (220.135.141.239 臺灣), 02/05/2020 00:33:15
james732: https://ideone.com/vBlYMd 02/05 01:13
※ 編輯: su27 (220.135.141.239 臺灣), 02/05/2020 02:48:07
protoss: static data member要在程式開始就有定義... 02/05 03:04
ucrxzero: 一開始就要給值了 02/06 02:42
ucrxzero: static vector<int> a{1,2,3} 02/06 02:44