Ir para conteúdo
Sistema de Servidores de Jogos ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Posts Recomendados

Fala galera. Eu estava estudando sobrecarga de função e me deparei com um problema. Eu tentei fazer duas funções de mesmo nome, onde uma soma dois inteiros e outra soma dois numeros decimais. O código é simples pois o intuito era praticar mesmo. Vou deixar abaixo o código e o erro. Quem puder ajudar eu agradeço.

#include <iostream>

int soma(int a, int b);
float soma(float a, float b);

int main()
{
    std::cout << soma(10, 5) << std::endl;
    std::cout << soma(10.741, 5.555) << std::endl;
}

int soma(int a, int b)
{
   return a + b;
}

float soma(float a, float b)
{
    return a + b;
}
 

||=== Build: Debug in Exercícios aleatórios (compiler: GNU GCC Compiler) ===|
In function 'int main()':
error: call of overloaded 'soma(double, double)' is ambiguous
note: candidate: int soma(int, int)
note: candidate: float soma(float, float)
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

Link para o comentário
https://www.webcheats.com.br/topic/2269507-problema-com-sobrecarga-de-fun%C3%A7%C3%A3o/
Compartilhar em outros sites

O problema é que números inteiros, podem tanto ser considerados inteiros como pontos flutuantes, logo o compilador não sabe qual das duas funções chamar. Pra resolver isso, basta especificar o ponto flutuante na chamada do " float soma(float a, float b) " colocando "f" no final constantes.
 

É necessário se cadastrar para acessar o conteúdo.

Note que, se você criar duas variáveis do tipo float, e chamar a função com essas variáveis também vai funcionar pois o compilador vai saber que você tá passando float pra uma, inteiro pra outra.
 

Porém, isso é uma coisa do g++, não notei o mesmo comportamento no msvcpp.

Editado por TheSkytalos
mvcpp para msvcpp
  • Curtir 1

"May you be in heaven half an hour before the Devil knows you're dead"

Link para o comentário
https://www.webcheats.com.br/topic/2269507-problema-com-sobrecarga-de-fun%C3%A7%C3%A3o/#findComment-9076290
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.