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