Skip to content
Snippets Groups Projects
Commit 859e228e authored by Debora's avatar Debora
Browse files

finalizando .cpp e .h de animal (com ponteiros para veterinario e tratador)

parent bcd21b64
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -21,8 +21,6 @@ using namespace std;
* batismo - nome de batismo do animal
* veterinario - veterinario ao qual o animal está associado
* tratador - tratador ao qual o animal está associado
* Metodo protegido:
* virtual std::ostream& print(std::ostream&) const = 0;
* Métodos públicos:
* getId - retorna o id do animal
......@@ -42,13 +40,10 @@ using namespace std;
* getTratador - retorna o tratador do animal
* setTratador - modifica o tratador do animal
* Animal - Construtor cria um ser do tipo Animal, inicializando os seus atributos
* virtual void imprime()=0 - método para impressão das informações do animal
* virtual void print()=0 - método para impressão das informações do animal
*
*/
class Animal {
private:
virtual std::ostream& print(std::ostream&) const = 0;
protected:
int id;
string classe;
......@@ -58,8 +53,8 @@ class Animal {
float tamanho;
string dieta;
string batismo;
Veterinario veterinario;
Tratador tratador;
Veterinario* veterinario;
Tratador* tratador;
public:
......@@ -80,13 +75,12 @@ class Animal {
string getBatismo();
void setBatismo(string baptism);
Veterinario getVeterinario();
void setVeterinario(Veterinario vet);
void setVeterinario(Veterinario* vet);
Tratador getTratador();
void setTratador(Tratador caretaker);
friend std::ostream& operator << (std::ostream& output, const Animal& a) {
return a.print(output); // polymorphic print via reference
}
Animal(int identity, string clas, string name, string scientific, char sex, float size, string diet, string baptism, Veterinario vet, Tratador caretaker);
void setTratador(Tratador* caretaker);
virtual void print() = 0;
Animal(int identity, string clas, string name, string scientific, char sex, float size, string diet, string baptism, Veterinario* vet, Tratador* caretaker);
~Animal();
};
......
#include "animal.h"
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
......@@ -10,7 +11,7 @@ using namespace std;
* baptism - nome de batismo do animal, vet - veterinário associado ao animal,
* caretaker - tratador associado ao animal,
*/
Animal::Animal(int identity, string clas, string name, string scientific, char sex, float size, string diet, string baptism, Veterinario vet, Tratador caretaker):
Animal::Animal(int identity, string clas, string name, string scientific, char sex, float size, string diet, string baptism, Veterinario* vet, Tratador* caretaker):
id(identity), classe(clas), cientifico(scientific),
sexo(sex), tamanho(size), dieta(diet), batismo(baptism),
......@@ -162,7 +163,7 @@ void Animal::setBatismo(string baptism){
* @return veterinario do animal
*/
Veterinario Animal::getVeterinario(){
return veterinario;
return (*veterinario);
}
......@@ -170,7 +171,7 @@ Veterinario Animal::getVeterinario(){
* @brief Funcao que modifica o veterinario do animal
* @param vet Veterinario do animal
*/
void Animal::setVeterinario(Veterinario vet){
void Animal::setVeterinario(Veterinario* vet){
veterinario = vet;
}
......@@ -179,17 +180,25 @@ void Animal::setVeterinario(Veterinario vet){
* @return tratador do animal
*/
Tratador Animal::getTratador(){
return tratador;
return (*tratador);
}
/**
* @brief Funcao que modifica o tratador do animal
* @param caretaker Tratador do animal
*/
void Animal::setTratador(Tratador caretaker){
void Animal::setTratador(Tratador* caretaker){
tratador = caretaker;
}
/*
Destrutor do Objeto Animal
*/
Animal::~Animal(){
}
// std::istream& operator>>( std::istream &input, Animal const &A ) {
// input >> A.id >> ";" >> A.classe >> ";" >> A.nome >> ";" >> A.cientifico >> ";"
// >> A.sexo >> ";" >> A.tamanho >> ";" >> A.dieta >> ";" >> A.batismo;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment