簡體   English   中英

全局向量C ++

[英]global vector C++

是否有可能將向量作為全局變量是C ++? 像這樣:

class system {...};
vector<system> systems;

當我嘗試編譯這個時,我收到一個錯誤。 我正在使用的編譯器是gcc,我正在編譯為C ++。

是的,可以這樣:

#include <vector>

class system{ ... };

std::vector<system> systems;

因此,向量全局變量是在類系統的定義之后定義的。 必須包含向量,不要忘記向量之前的std ::(或使用命名空間std)。

編輯:我只是想到了什么。 還有一個稱為系統的功能。 嘗試使用其他類名。

system()是一個c-stdlib函數,因此可能是已定義的名稱,因此您無法重復使用它。

將其重命名為其他內容(系統?)並在下次發布完整的錯誤消息,plz。

當我在Cygwin下使用g ++ 3.4.4編譯代碼時,我收到以下錯誤:

test.cpp:8:錯誤:模板參數列表中參數1的類型/值不匹配`template class std :: vector'

test.cpp:8:錯誤:期望一個類型,得到`系統'

test.cpp:8:錯誤:模板參數2無效

test.cpp:8:錯誤:';'之前的聲明中的無效類型 代幣

問題是你的類名系統,要么改變類的名稱,要么使用:

vector<class system> systems

我打賭你在沒有extern的頭文件中宣布它

你的意思是這樣的:

#include<iostream>
#include<vector>
using namespace std;
class system{
  // class members
 };

vector<system> v;

int main()
{
   //do something
}

它在我的g ++編譯器中工作正常。 我不認為全局定義矢量變量應該有任何問題,但不建議這樣做。

這個錯誤經常出現在windows.h中! “system”在“windows.h”中定義或包含在其中。 我想這是進行系統調用的功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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