Linguagem de Programação C++
Universidade Federal de Santa Catarina
Departamento de Engenharia Elétrica, CTC
Prof. Eduardo Augusto Bezerra
Profa. Cristiane Woszezenki
1. Estudar a classe Carro listada a seguir no exercício 3, e entender o relacionamento com as demais classes. Fornecer o diagrama de classes.
2. Criar uma classe Veiculo com funções membro que possam ser herdadas por carro e por outros veiculos. Criar alguns construtores para a classe Veiculo;
3. Criar pelo menos 3 outras classes que herdem da classe Veiculo, e que utilizem pelo menos uma das demais classes definidas a seguir.
class Motor { public: void partida() {} void marchaRe() {} void parar() {} }; class Pneu { public: void pressao(int cm3) {} }; class Vidro { public: void levantar() {} void abaixar() {} }; class Porta { public: Vidro janela; void abrir() {} void fechar() {} }; class Carro { public: Motor motor; Pneu pneu[4]; Porta esquerda, direita; // 2-portas }; int main() { Carro c; c.esquerda.janela.levantar(); c.pneu[0].pressao(26); }
4. Criar uma classe “CASA” (e classes relacionadas) com um construtor que possa receber como parâmetro a situação das portas e janelas.
5. Crie uma função para a classe casa que seja capaz de imprimir na tela a situação das portas e janelas de uma casa.
6. Acrescente no "main" um trecho onde seja permitido ao usuário alterar a situação das portas e janelas de uma das casas.
7. Crie diversas instâncias de casas e imprima a situação das suas portas e janelas.
8. Crie uma classe "RUA" que seja uma agregação de "CASAs". A classe deve possui um vetor do tipo "CASA" cujo tamanho é definido na construtora. Observe que a criação de um vetor de objetos implica em que o mesmo não possua construtor com parâmetros. O que deve ser alterado na classe casa, então?
9. Acrescente um atributo "visivel" na classe "CASA" e em cada uma das componentes "PORTA", "JANELA" e "BOX". O objetivo deste atributo é indicar quando um objeto está sendo exibido na tela. Desta forma as funções do tipo "SetCor" ou "SetEstado" teriam condições de re-exibir os elementos necessários.
10. Acrescente comandos de impressão nas rotinas destrutoras de forma a ser possível observar a ordem em que as mesmas são ativadas.