[英]How to call an array in the main function from a class in C++?
我曾經在高中時做過,但是幾年沒練習了。 我想做的是創建一個數組,該數組將存儲1-100個ID。 (這是一種游戲,其中將為每個項目分配一個ID以區分每個項目)這是我的代碼,
#include <iostream>
#include <string>
using namespace std;
class items_class
{
public:
items_class();
~items_class();
static int item_ID[100];
};
items_class::items_class()
{
for(int i=0;i<=100;i++)
{
item_ID[i] = i;
}
}
int main()
{
items_class items();
for(int x=0;x<=100;x++)
{
cout << items.item_ID[x] << endl;
}
}
但是當我嘗試編譯它時,出現此錯誤:
main.cpp:29:27:錯誤:在'items'中請求成員'item_ID',該成員是非類類型'items_class()'cout << items.item_ID [x] << endl;
誰能告訴我為什么會這樣嗎? 這可能確實很明顯,但我無法弄清楚,整個晚上都在搜尋互聯網! r
提前致謝!
這就是您所缺少的,您聲明了靜態變量但從未定義!
#include <iostream>
#include <string>
using namespace std;
class items_class
{
public:
items_class();
~items_class();
static int item_ID[100];
};
int items_class::item_ID[100]; // Need to define the static variable in a compilation unit.
items_class::items_class()
{
for(int i=0;i<=100;i++)
{
items_class::item_ID[i] = i;
}
}
int main()
{
items_class items();
for(int x=0;x<=100;x++)
{
cout << items_class::item_ID[x] << endl;
}
}
先前的答案假定您想要的是靜態變量。 另一種方法是刪除static關鍵字。 然后,在聲明項目時,刪除括號
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.