1. ホーム
  2. c++

[解決済み] グローバル変数 "count "の曖昧さ

2022-02-07 23:10:19

質問

#include <algorithm>
using namespace std;

int count = 0, cache[50];

int f(int n)
{  
    if(n == 2) count++;
    if(n == 0 || n==1) return n;
    else if (cache[n] !=- 1) return cache[n];
    else cache[n]= f(n-1) + f(n-2);
    return cache[n]; 
}

gcc 4.3.4でこの関数を使用したところ、以下のエラーが発生しました。

prog.cpp: In function ‘int f(int)’:
prog.cpp:38: error: reference to ‘count’ is ambiguous

私のローカルマシン(mingw32)では、以下のようなエラーが発生しました。 これ に対するものではありませんが int 'cache[]' .

何か理由はありますか?

解決方法は?

問題はすべて、この2行目にあります。

#include <algorithm>
using namespace std;

using namespace std からすべての名前を <algorithm> という関数も持っています。 count を宣言し、コード内で変数 count . そのため、あいまいなエラーになります。

解決策としては 決して 書く using namespace std . 悪い悪い悪いです。

代わりに std::cout , std::cin , std::endl , std::count といった具合に、コード内に記述してください。