ti-enxame.com

Erro C ++: o nome do tipo não é permitido

Estou tentando brincar com a minha nova aula em Pointer Arguments, e quero tornar as funções senior e everyoneElse toma o ponteiro x, mas quando tento chamar a função com o ponteiro pAge, ele diz Error: Type name is não permitido. O que há de errado?

#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;
}
7
user2098000
if(age>59)
    senior(int* pAge);
else
    everyoneElse(int* pAge);

Você não pode incluir o nome do tipo ao chamar uma função. Mudar para:

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

substituir com

senior(pAge);
else
    everyoneElse(pAge);
3
Boyko Perfanov

Quando você chama a função, não precisa especificar o tipo de parâmetro que você passa para uma função:

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

Os parâmetros devem ser especificados por tipo apenas no protótipo da função e na função do corpo (como este :)

int senior(int* x)
{

return *x;
}
1
Anton Kizema

Como você está chamando a função int senior (int x) * e int everyoneElse (int x) * está errado, chame a função como: everyoneElse (pAge) e int senior (x)

veja o link http://msdn.Microsoft.com/en-us/library/be6ftfba (v = vs.80) .aspx

0
Astro - Amit