From 859e228e3f7451f8171c7b4bb6d70b8468ecb94d Mon Sep 17 00:00:00 2001
From: Debora Azevedo <deboraazevedoo@gmail.com>
Date: Wed, 9 Nov 2016 07:06:24 -0300
Subject: [PATCH] finalizando .cpp e .h de animal (com ponteiros para
 veterinario e tratador)

---
 include/animal/animal.h | 22 ++++++++--------------
 src/animal/animal.cpp   | 21 +++++++++++++++------
 2 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/include/animal/animal.h b/include/animal/animal.h
index 4774b5c..9bdcb9c 100644
--- a/include/animal/animal.h
+++ b/include/animal/animal.h
@@ -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();
 };
 
 
diff --git a/src/animal/animal.cpp b/src/animal/animal.cpp
index 5643ecd..ded7499 100644
--- a/src/animal/animal.cpp
+++ b/src/animal/animal.cpp
@@ -1,5 +1,6 @@
 #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;
-- 
GitLab