Skip to content
Snippets Groups Projects
Commit 700d1d0c authored by Nico's avatar Nico
Browse files

Tentando arrumar as obras

parent cc2d178a
Branches
No related tags found
No related merge requests found
main 0 → 100755
File added
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
#include <iostream> #include <iostream>
#include "./sources/Biblioteca.hpp" #include "./sources/Biblioteca.hpp"
#include "./sources/Livro.cpp" #include "./sources/Livro.hpp"
using namespace std; using namespace std;
......
...@@ -13,20 +13,15 @@ void DescricaoObra::mostrarDetalhes() const { ...@@ -13,20 +13,15 @@ void DescricaoObra::mostrarDetalhes() const {
cout << "Ano de Publicação: " << anoPublicacao << "\n"; cout << "Ano de Publicação: " << anoPublicacao << "\n";
} }
// Operators
bool DescricaoObra::operator==(const DescricaoObra& other) const {
return this->titulo == other.titulo;
}
// Methods // Methods
string DescricaoObra::getTipo() { string DescricaoObra::getTipo() const {
return this->tipo; return this->tipo;
} }
string DescricaoObra::getTitulo(){ string DescricaoObra::getTitulo() const {
return this->titulo; return this->titulo;
} }
int DescricaoObra::getAnoPublicacao(){ int DescricaoObra::getAnoPublicacao() const {
return this->anoPublicacao; return this->anoPublicacao;
} }
...@@ -15,17 +15,14 @@ class DescricaoObra { ...@@ -15,17 +15,14 @@ class DescricaoObra {
public: public:
// Contructor // Contructor
DescricaoObra(); DescricaoObra() {};
DescricaoObra(const string& tipo, const string& titulo, int ano); DescricaoObra(const string& tipo, const string& titulo, int ano);
virtual void mostrarDetalhes() const = 0; virtual void mostrarDetalhes() const;
// Operators
bool operator==(const DescricaoObra& other) const;
// Methods // Methods
string getTitulo(); string getTitulo() const ;
string getTipo(); string getTipo() const ;
int getAnoPublicacao(); int getAnoPublicacao() const ;
}; };
......
...@@ -5,6 +5,13 @@ ...@@ -5,6 +5,13 @@
using namespace std; using namespace std;
Livro::Livro(const DescricaoObra& outro) {
if (outro.getTipo() == "livro") {
Livro l = static_cast<Livro>(outro);
Livro(l.getTitulo(), l.getAnoPublicacao(), l.getAutor(), l.getEditora());
}
}
Livro::Livro(const string& t, int ano, const string& a, const string& e) Livro::Livro(const string& t, int ano, const string& a, const string& e)
: DescricaoObra("livro", t, ano), autor(a), editora(e) {} : DescricaoObra("livro", t, ano), autor(a), editora(e) {}
...@@ -16,10 +23,10 @@ void Livro::mostrarDetalhes() const { ...@@ -16,10 +23,10 @@ void Livro::mostrarDetalhes() const {
} }
// Methods // Methods
string Livro::getAutor(){ string Livro::getAutor() const {
return this->autor; return this->autor;
} }
string Livro::getEditora(){ string Livro::getEditora() const {
return this->editora; return this->editora;
} }
...@@ -13,12 +13,13 @@ class Livro: public DescricaoObra { ...@@ -13,12 +13,13 @@ class Livro: public DescricaoObra {
public: public:
// Contructor // Contructor
Livro(const DescricaoObra& outro);
Livro(const string& t, int ano, const string& a, const string& e); Livro(const string& t, int ano, const string& a, const string& e);
void mostrarDetalhes() const override; void mostrarDetalhes() const override;
// Methods // Methods
string getAutor(); string getAutor() const ;
string getEditora(); string getEditora() const ;
}; };
......
...@@ -13,7 +13,7 @@ class Obra { ...@@ -13,7 +13,7 @@ class Obra {
// Contructor // Contructor
Obra(); Obra();
Obra(DescricaoObra& descricao); Obra(DescricaoObra& descricao);
virtual void mostrarDetalhes() const; void mostrarDetalhes() const;
// Methods // Methods
bool emprestar(); bool emprestar();
......
...@@ -3,6 +3,13 @@ ...@@ -3,6 +3,13 @@
#include "./Periodico.hpp" #include "./Periodico.hpp"
// Contructor // Contructor
Periodico::Periodico(const DescricaoObra& outro) {
if (outro.getTipo() == "livro") {
Periodico p = static_cast<Periodico>(outro);
Periodico(p.getTitulo(), p.getAnoPublicacao(), p.getVolume(), p.getMes());
}
}
Periodico::Periodico(const std::string& t, int ano, int vol, int m) Periodico::Periodico(const std::string& t, int ano, int vol, int m)
: DescricaoObra("periodico", t, ano), volume(vol), mes(m) {} : DescricaoObra("periodico", t, ano), volume(vol), mes(m) {}
...@@ -13,9 +20,10 @@ void Periodico::mostrarDetalhes() const { ...@@ -13,9 +20,10 @@ void Periodico::mostrarDetalhes() const {
} }
// Methods // Methods
int Periodico::getVolume(){ int Periodico::getVolume() const {
return this->volume; return this->volume;
} }
int Periodico::getMes(){
int Periodico::getMes() const {
return this->mes; return this->mes;
} }
...@@ -12,12 +12,13 @@ class Periodico: public DescricaoObra { ...@@ -12,12 +12,13 @@ class Periodico: public DescricaoObra {
public: public:
// Contructor // Contructor
Periodico(const DescricaoObra& outro);
Periodico(const string& t, int ano, int vol, int m); Periodico(const string& t, int ano, int vol, int m);
void mostrarDetalhes() const override; void mostrarDetalhes() const override;
// Methods // Methods
int getVolume(); int getVolume() const;
int getMes(); int getMes() const;
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment