First version using OOP
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -45,3 +45,4 @@ compile_commands.json
|
|||||||
CTestTestfile.cmake
|
CTestTestfile.cmake
|
||||||
_deps
|
_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