First version using OOP
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -45,3 +45,4 @@ compile_commands.json
|
||||
CTestTestfile.cmake
|
||||
_deps
|
||||
|
||||
build/
|
||||
6
Acordavel.hpp
Normal file
6
Acordavel.hpp
Normal file
@@ -0,0 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
class Acordavel{
|
||||
public:
|
||||
virtual void acorda() = 0;
|
||||
};
|
||||
19
Alarme.cpp
Normal file
19
Alarme.cpp
Normal file
@@ -0,0 +1,19 @@
|
||||
#include "Alarme.hpp"
|
||||
|
||||
Alarme::Alarme(){
|
||||
|
||||
}
|
||||
|
||||
Alarme::~Alarme(){
|
||||
|
||||
}
|
||||
|
||||
void Alarme::registraAcordavel(Acordavel* acordavel){
|
||||
acordaveis.push_back(acordavel);
|
||||
}
|
||||
|
||||
void Alarme::toca(){
|
||||
for(int32_t i=0; i < acordaveis.size(); i++){
|
||||
acordaveis.at(i)->acorda();
|
||||
}
|
||||
}
|
||||
14
Alarme.hpp
Normal file
14
Alarme.hpp
Normal file
@@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include <cinttypes>
|
||||
#include "Acordavel.hpp"
|
||||
|
||||
class Alarme{
|
||||
public:
|
||||
Alarme();
|
||||
~Alarme();
|
||||
void registraAcordavel(Acordavel* acordavel);
|
||||
void toca();
|
||||
std::vector<Acordavel*> acordaveis;
|
||||
};
|
||||
17
Animal.cpp
Normal file
17
Animal.cpp
Normal file
@@ -0,0 +1,17 @@
|
||||
#include "Animal.hpp"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
Animal::Animal(){
|
||||
|
||||
}
|
||||
|
||||
Animal::~Animal(){
|
||||
|
||||
}
|
||||
|
||||
void Animal::acorda(){
|
||||
cout << "Só acorda, sem fazer barulho" << endl;
|
||||
}
|
||||
15
Animal.hpp
Normal file
15
Animal.hpp
Normal file
@@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#include <cinttypes>
|
||||
#include <string>
|
||||
|
||||
#include "Acordavel.hpp"
|
||||
|
||||
class Animal : public Acordavel{
|
||||
public:
|
||||
Animal();
|
||||
~Animal();
|
||||
virtual void acorda();
|
||||
int32_t raca;
|
||||
std::string _nome;
|
||||
};
|
||||
5
CMakeLists.txt
Normal file
5
CMakeLists.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
cmake_minimum_required(VERSION 3.5.0)
|
||||
project(HelloWorld VERSION 0.1.0 LANGUAGES C CXX)
|
||||
|
||||
add_executable(HelloWorld main.cpp Cachorro.cpp Gato.cpp Animal.cpp Alarme.cpp)
|
||||
|
||||
21
Cachorro.cpp
Normal file
21
Cachorro.cpp
Normal file
@@ -0,0 +1,21 @@
|
||||
#include "Cachorro.hpp"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
Cachorro::Cachorro(std::string nome){
|
||||
cout << "Nasce um doguinho chamado " << nome << endl;
|
||||
_nome = nome;
|
||||
}
|
||||
|
||||
Cachorro::~Cachorro(){
|
||||
cout << "E " << _nome << " nos deixou" << endl;
|
||||
}
|
||||
|
||||
void Cachorro::acorda(){
|
||||
late();
|
||||
}
|
||||
|
||||
void Cachorro::late(){
|
||||
cout << _nome << " faz AUAU" << endl;
|
||||
}
|
||||
11
Cachorro.hpp
Normal file
11
Cachorro.hpp
Normal file
@@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include "Animal.hpp"
|
||||
|
||||
class Cachorro : public Animal{
|
||||
public:
|
||||
Cachorro(std::string nome);
|
||||
~Cachorro();
|
||||
void acorda();
|
||||
void late();
|
||||
};
|
||||
21
Gato.cpp
Normal file
21
Gato.cpp
Normal file
@@ -0,0 +1,21 @@
|
||||
#include "Gato.hpp"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
Gato::Gato(std::string nome){
|
||||
cout << "Nasce um gatinho chamado " << nome << endl;
|
||||
_nome = nome;
|
||||
}
|
||||
|
||||
Gato::~Gato(){
|
||||
cout << "E " << _nome << " nos deixou" << endl;
|
||||
}
|
||||
|
||||
void Gato::acorda(){
|
||||
mia();
|
||||
}
|
||||
|
||||
void Gato::mia(){
|
||||
cout << _nome << " faz MIAU" << endl;
|
||||
}
|
||||
11
Gato.hpp
Normal file
11
Gato.hpp
Normal file
@@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include "Animal.hpp"
|
||||
|
||||
class Gato : public Animal{
|
||||
public:
|
||||
Gato(std::string nome);
|
||||
~Gato();
|
||||
void acorda();
|
||||
void mia();
|
||||
};
|
||||
20
main.cpp
Normal file
20
main.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
#include <iostream>
|
||||
|
||||
#include "Animal.hpp"
|
||||
#include "Cachorro.hpp"
|
||||
#include "Gato.hpp"
|
||||
#include "Alarme.hpp"
|
||||
|
||||
Animal aleatorio;
|
||||
Cachorro bob("Bob");
|
||||
Gato selva("Selva");
|
||||
|
||||
Alarme relogio;
|
||||
|
||||
int main(int, char**){
|
||||
std::cout << "Hello, from HelloWorld!\n";
|
||||
relogio.registraAcordavel(&aleatorio);
|
||||
relogio.registraAcordavel(&bob);
|
||||
relogio.registraAcordavel(&selva);
|
||||
relogio.toca();
|
||||
}
|
||||
Reference in New Issue
Block a user