[問題] 類別的成員 要宣告成靜態成員

看板C_and_CPP (C/C++)作者 (su27)時間5年前 (2020/02/04 22:28), 5年前編輯推噓2(205)
留言7則, 5人參與, 5年前最新討論串1/1
開發平台(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

02/04 22:33, 5年前 , 1F
樓下有看到code嗎? 我猜你宣告外還缺少實體...
02/04 22:33, 1F
貼上程式碼了 我把我的問題貼在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

02/04 23:26, 5年前 , 2F
vector<CAA> CBB::m_AAs; //加上這句試試
02/04 23:26, 2F
成功了 謝謝

02/04 23:31, 5年前 , 3F
可以Google:c++ static member initialization
02/04 23:31, 3F
我看不出來問題點在哪 請問一下 static vector< class > 是不是我這種寫法 無法編譯 ※ 編輯: su27 (220.135.141.239 臺灣), 02/05/2020 00:33:15

02/05 01:13, 5年前 , 4F
※ 編輯: su27 (220.135.141.239 臺灣), 02/05/2020 02:48:07

02/05 03:04, 5年前 , 5F
static data member要在程式開始就有定義...
02/05 03:04, 5F

02/06 02:42, 5年前 , 6F
一開始就要給值了
02/06 02:42, 6F

02/06 02:44, 5年前 , 7F
static vector<int> a{1,2,3}
02/06 02:44, 7F
文章代碼(AID): #1UEN-02c (C_and_CPP)
文章代碼(AID): #1UEN-02c (C_and_CPP)