簡體   English   中英

如何從C ++中的類在主函數中調用數組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM