Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Defina uma classe EqualSides (lados iguais) que representará objetos 2D para serem
- desenhados no console onde os lados tem o mesmo tamanho. Ela deve possuir os seguintes
- atributos: size que representa o tamanho do lado do objeto e character que representa o
- caractere a ser usado para desenhar a figura. Esta classe deve ter um construtor default
- para inicializar o que for necessário, além dos métodos setSize() e setCharacter() para
- definir os respectivos atributos e ainda um método draw(), este método deve ser definido
- como virtual puro, fazendo com que a classe EqualSides seja abstrata. O método draw()imprime
- a figura no console.
- Definir e implementar também mais duas classes Square e EquilateralTriangle, derivadas
- da classe EqualSides.
- Implementar uma aplicação para testar o método draw(), setSize() e setCharacter() dos objetos
- instanciados das classes Square e EquilateralTriangle através do uso de polimorfismo. */
- #include<iostream>
- using namespace std;
- class EqualSides {
- protected:
- int size;
- char character;
- public:
- EqualSides();
- void setSize();
- void setCharacter();
- virtual void draw() = 0;
- };
- class Square : public EqualSides {
- public:
- int i;
- int j;
- void draw();
- };
- class EquilateralTriangle : public EqualSides {
- public:
- int h;
- int espaco;
- int aux;
- void draw();
- };
- EqualSides::EqualSides(){
- }
- void EqualSides::setSize(){
- cout << "Digite o TAMANHO desejado do desenho: " ;
- cin >> size ;
- }
- void EqualSides::setCharacter(){
- cout << "Digite o CARACTERE desejado No desenho: " ;
- cin >> character ;
- }
- void Square::draw(){
- cout<< endl;
- for (i=0 ; i< size ; i++){
- for(j=0; j<size ; j++){
- cout << " " << character;
- }
- cout<< endl;
- }
- }
- void EquilateralTriangle::draw(){
- espaco = size;
- cout<< endl;
- for (h=0 ; h <size ; h++){
- for(aux=1; aux<espaco ; aux++){
- cout << " ";
- }
- for (aux=0 ; aux<h+1 ; aux++){
- cout << character << " ";
- }
- espaco--;
- cout<< endl;
- }
- }
- int main(){
- cout << "Testando o Square: \n"<< endl ;
- EqualSides *ptr;
- Square quadrado;
- ptr = &quadrado;
- ptr->setSize();
- ptr->setCharacter();
- ptr->draw();
- cout << "\n\nTestando o Triangulo Equilatero: \n"<< endl ;
- EquilateralTriangle triangulo;
- ptr = &triangulo;
- ptr->setSize();
- ptr->setCharacter();
- ptr->draw();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment