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;
}
}
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Máquina perereca - até onde é possível o uso de Linux?
Colocando skins no VLC Media Player
Como anda a saúde do disco rígido?
Debian 13 "trixie&... lançado! (27)
O que você está ouvindo agora? [2] (202)