Determine se os segmentos de programa a seguir contêm erros. Explique como cada erro pode ser corrigido. [Nota: para um segmento de programa em particular, é possível que nenhum erro esteja presente no segmento.]

a) template

int sum( int num1, int num2, int num3 )

{

return num1 + num2 + num3;

}

b) void printResults( int x, int y )

{

cout

return x + y;

}

c) template

A product( A num1, A num2, A num3 )

{

return num1 * num2 * num3;

}

d) double cube( int );

int cube( int );

Passo 1

Fala Galera!!! Tudo certo? Espero que sim!! Bora para mais um exercício.

Bora analisar cada alternativa e verificar se tem algum erro.

Na letra a) é verificado um erro, onde na linha 2 a função sum e os argumentos devem ser do tipo do template A e não do tipo int.

Logo, o correto seria escrever o código da seguinte maneira:

template

A sum( A num1, A num2, A num3 )

{

return num1 + num2 + num3;

}

Passo 2

Na letra b) o erro está na linha 1, onde a função printResults é especificada do tipo void porém o argumentos são passados do tipo int

O correto é escrever o código da seguinte forma:

int printResults( int x, int y )

{

cout

return x + y;

}

Passo 3

Na letra c) o erro está na linha 1, onde o template A está declarado de forma errada. O template precissa do argumento class.

O correto é escrever o código da seguinte forma:

template

A product( A num1, A num2, A num3 )

{

return num1 * num2 * num3;

}

Passo 4

Na letra d) o erro está na linha 1, onde a função cube é especificada do tipo double, porém recebe o argumento int.

O correto é escrever o código da seguinte forma:

double cube( double );

int cube( int );

E assim finalizamos esse exercício galera!!! Até o próximo.

Resposta

Resolução acima.