作者su27 (su27)
看板C_and_CPP
標題[問題] 類別的成員 要宣告成靜態成員
時間Tue Feb 4 22:28:11 2020
開發平台(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
※ 編輯: 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