Enviado em 13/01/2018 - 19:27h
Boa tarde, estou apredendo polimorfismo de sobrecarga porém o compilador está retornando esses erros:||=== Build: Debug in Sobrecarga Ex.A13a (compiler: GNU GCC Compiler) ===| /home/TheBugLog/Documents/POO/Sobrecarga Ex.A13a/main.cpp||In function ‘int main()’:| /home/TheBugLog/Documents/POO/Sobrecarga Ex.A13a/main.cpp|11|error: call of overloaded ‘reagir(int, double)’ is ambiguous| include/Cachorro.h|19|note: candidate: void Cachorro::reagir(short int, short int)| include/Cachorro.h|20|note: candidate: void Cachorro::reagir(short int, float)| ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
#ifndef CACHORRO_H #define CACHORRO_H #include <string> #include "Animal.h" class Cachorro : public Animal{ public: void locomover(); void alimentar(); void emitirSom(); public: void reagir(bool dono); void reagir(std::string frase); void reagir(short hora, short minutos); void reagir(short idade, float peso); }; #endif // CACHORRO_H
#include <iostream> #include "Cachorro.h" void Cachorro::locomover(){ std::cout << "Correndo..." << std::endl; } void Cachorro::alimentar(){ std::cout << "Comendo ração..." << std::endl; } void Cachorro::emitirSom(){ std::cout << "Latindo..." << std::endl; } //Diferentes reações do cachorro void Cachorro::reagir(bool dono){ if(dono==true){ std::cout << "Abanando Rabo" << std::endl; }else{ std::cout << "Rosnando" << std::endl; } } void Cachorro::reagir(std::string frase){ if(frase.compare("Vem aqui")==0){ std::cout << "Abanando rabo e feliz" << std::endl; }else if(frase.compare("Vem aqui cachorro feio")){ std::cout << "Rosnando e abanando rabo" << std::endl; }else{ std::cout << "Ignorando" << std::endl; } } void Cachorro::reagir(short hora, short minutos){ if(hora<=12 && minutos<=59){ std::cout << "Abanando rabo e alegre" << std::endl; }else if(hora<=18 && minutos<=59){ std::cout << "Abanando rabo e latindo" << std::endl; }else{ std::cout << "Ignorando" << std::endl; } } void Cachorro::reagir(short idade , float peso){ if(idade<=2 && peso <= 0.9){ std::cout << "Abanando rabo (novo e leve)" << std::endl; }else if(idade>=3 && peso <= 0.9){ std::cout << "Abanando rabo e latindo (velho e leve)" << std::endl; }else if(idade<=2 && peso >= 1){ std::cout << "Abanando rabo e rosnando (novo e pesado)" << std::endl; }else{ std::cout << "Ignorando (velho e pesado)" << std::endl; } }
Enviado em 13/01/2018 - 19:55h
Blz! Consegui dar uma volta em cima dos erros que estavam aparecendo mudando os tipos primitivos para int de um dos metodos poliformicos (porém não sei os motivos dos erros passados):....code void Cachorro::reagir(int hora, int minutos){ if(hora<=12 && minutos<=59){ std::cout << "Abanando rabo e alegre" << std::endl; }else if(hora<=18 && minutos<=59){ std::cout << "Abanando rabo e latindo" << std::endl; }else{ std::cout << "Ignorando" << std::endl; } } void Cachorro::reagir(short idade , float peso){ if(idade<=2 && peso <= 0.9){ std::cout << "Abanando rabo (novo e leve)" << std::endl; }else if(idade>=3 && peso <= 0.9){ std::cout << "Abanando rabo e latindo (velho e leve)" << std::endl; }else if(idade<=2 && peso >= 1){ std::cout << "Abanando rabo e rosnando (novo e pesado)" << std::endl; }else{ std::cout << "Ignorando (velho e pesado)" << std::endl; } } .....code
#include <iostream> #include "Cachorro.h" int main(){ Cachorro *spaceDogo=new Cachorro; spaceDogo->reagir(false); spaceDogo->reagir("Vem aqui"); spaceDogo->reagir(9,30); spaceDogo->reagir(5,5.8); return 0; }
Rosnando Abanando rabo Abanando rabo e alegre Abanando rabo e alegre
Enviado em 14/01/2018 - 00:24h
Olha, isso não é um bug, na verdade é consequência de um programa repleto de práticas por assim dizer, sub-ótimas...spaceDogo->reagir(5,5.8);
spaceDogo->reagir(5,5.8f);
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Criando uma Infraestrutura para uma micro Empresa
Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
O Que Fazer Após Instalar Fedora 42
Debian 12 -- Errata - Correções de segurança
Instalando o Pi-Hole versão v5.18.4 depois do lançamento da versão v6.0
Copiar Layout do Teclado para aplicar em outra Distribuição (1)
Não acesso a conta do Banco do Brasil pelo Google Chrome [RESOLVIDO] (3)