Wat betekent het dat “een declaratie een parameter overschaduwt”?

Ik probeer een functie te maken die het dubbele van het gehele getal retourneert dat ik eraan zal doorgeven. Ik krijg de volgende foutmelding bij mijn code:

declaratie van ‘int x’ schaduwt een parameter int x; “

Hier is mijn code:

#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;
}

Antwoord 1, autoriteit 100%

Je hebt xals parameter en probeer het dan ook als een lokale variabele te declareren, waar de klacht over “schaduwen” naar verwijst.


Antwoord 2, autoriteit 9%

Ik deed het omdat je advies zo nuttig was, en dit is het eindresultaat:

#include <iostream>
using namespace std;
int doublenumber(int x)
{
    return 2*x;
}
int main()
{
    int a;
    cout << "Enter the number that you want to double it : " << endl;
    cin>>a;
    int n= doublenumber(a);
    cout << "the double value is : " << n << endl;
    return 0;
}

Antwoord 3, autoriteit 6%

#include <iostream>
using namespace std;
int doublenumber(int x)
{
return 2*x;
}
int main()
{
int a;
cout << "Enter the number that you want to double it : " << endl;
cin>>a;
int d = doublenumber(a);
cout << "Double : " << d << endl;
return 0;
}

Er zijn een probleem met uw code. Uw verklaring en definitie van functie sterft niet overeen. Dus verwijder de verklaring als er geen noodzaak van.

U verklaart lokale X-variabele binnenfunctie die uw functie-argumenten zal overschaduwen.

Other episodes