C++ Fout: Type naam is niet toegestaan ​​

Ik probeer rond te spelen met mijn nieuwe klasse-les in aanwijzerargumenten, en ik wil de functies Senior en Iedereen aanwijzer x nemen, maar wanneer ik de functie probeer te bellen met de POINTER-pagina, zegt dit fout: Type naam is niet toegestaan. Wat is er verkeerd?

#include <iostream>
int senior(int* x);
int everyoneElse(int* x);
using namespace std;
int main()
{
    int age(0);
    int* pAge(&age);
    cout<<"How old are you?"<<endl;
    cin>>age;
    if(age>59)
        senior(int* pAge);
    else
        everyoneElse(int* pAge);
    return 0;
}
int senior(int* x)
{
return *x;
}
int everyoneElse(int* x)
{
return *x;
}

Antwoord 1, Autoriteit 100%

if(age>59)
    senior(int* pAge);
else
    everyoneElse(int* pAge);

U kunt de typenaam niet opnemen bij het bellen van een functie. Wijzigen naar:

if(age>59)
    senior(pAge);
else
    everyoneElse(pAge);

Antwoord 2, Autoriteit 60%

senior(int* pAge);
else
    everyoneElse(int* pAge);

Vervang door

senior(pAge);
else
    everyoneElse(pAge);

Antwoord 3, Autoriteit 20%

Wanneer u de functie belt, hoeft u niet het type parametron te specificeren, dat u doorgeeft aan een functie:

if(age>59)
    senior(pAge);
else
    everyoneElse(pAge);

Parameters moeten alleen op type worden gespecificeerd in functie prototype en lichaamsfunctie (zoiets:)

int senior(int* x)
{
return *x;
}

Antwoord 4

Hoe je de functie int senior(intx)* en int everyoneElse(intx)* aanroept, roep de functie aan als: everyoneElse( pAge)en int senior(x)

zie link
http://msdn.microsoft.com /nl-nl/bibliotheek/be6ftfba(v=vs.80).aspx

Other episodes