2012-10-09 35 views
1

我是使用Xcode的C++中的初學者。 嘗試使用聲明的全局變量時,使用Xcode C++時出現錯誤。 這是示例代碼。嘗試使用全局變量時使用Xcode C++時的錯誤

#include <iostream> 
using namespace std; 

int count ; 

int main() 
{ 
    count=1;  // reference to 'count' is ambiguous 

    cout << count; // reference to 'count' is ambiguous 

    return 0; 
} 

謝謝。

回答

4

有一個名爲std::count()一個STL算法是有using namespace std;指令編譯器現在有兩個可用count符號可供選擇:去除using namespace std;,並使用std::cout

請參閱Using std Namespace以供進一步閱讀。

+1

每次有人說'使用命名空間std;',神吃一隻小貓。 –

+0

謝謝,我明白,我不知道名爲std :: count()的STL算法。我只是簡單的例子學習全局變量。我已經將變量的名稱更改爲「count1」,它可以工作。 – blackishharry

1

要麼刪除using namespace std;或限定使用您的變量::count的:

int main() 
{ 
    ::count=1;  // reference to 'count' is ambiguous 

    cout << ::count; // reference to 'count' is ambiguous 

    return 0; 
} 

你得到,因爲std::count歧義。

+0

謝謝,我明白,我不知道名爲std :: count()的STL算法。我只是簡單的例子學習全局變量。我已經將變量的名稱更改爲「count1」,它可以工作。謝謝。 – blackishharry

1

刪除using namespace std;並將cout更改爲std::cout。使用聲明將所有標準庫名稱拉入全局名稱空間,並且它們的算法名爲std::count,這可能是問題的根源。一般來說,using namespace std;是一個壞主意。

+0

謝謝,我明白,我不知道名爲std :: count()的STL算法。我只是簡單的例子學習全局變量。我已經將變量的名稱更改爲「count1」,它可以工作。 – blackishharry