「宣言がパラメータを覆い隠す」とはどういう意味ですか? 質問する

「宣言がパラメータを覆い隠す」とはどういう意味ですか? 質問する

渡される整数の 2 倍を返す関数を作成しようとしています。コードで次のエラー メッセージが表示されます。

'int x' の宣言はパラメータ int x; を隠します。

これが私のコードです:

#include <iostream>
int doublenumber();
using namespace std;
int doublenumber(int x)// <-- this is the function which returns double the value .
{
    int x;
    return 2 * x;
    cout << endl;
}
int main()
{
    int a;
    cout << "Enter the number that you want to double it : " << endl;
    cin >> a;
    doublenumber(a);

    return 0;
}

ベストアンサー1

パラメータとして持っていてx、それをローカル変数としても宣言しようとします。これが「シャドウイング」に関する苦情が指すものです。

おすすめ記事