Exercícios resolvidos em C++ ( #2)

Utilizando a classe base pessoa [1], projete a classe derivada Professor, mediante implementação de um mecanismo de herança pública.

A classe deve obedecer aos sequintes requisitos:

  • não permitir invocar o construtor por default da classe derivada;
  • construir o objeto fornecendo apenas o nome da disciplina que leciona o professor;
  • construir o objeto recorrendo a um construtor inicializador em herança, que permita definir os membros dado da classe base;

Escreve um programa que exemplifique a utilização das classes criadas no ponto anterior, não esquecendo de deixar clara a utilização dos vários construtores, bem como o acesso aos membros públicos da classe base.

Resolução

A resolução deste exercício tem como base a classe Pessoa, definida em http://gracianotorrao.com/2013/03/04/exercicios-resolvidos-em-c-1/

No caso da classe Professor, vamos considerar que a classe derivada apenas acrescenta o nome da disciplina, da qual a Pessoa em questão é Professor.

A ser publicado brevemente …

Professor.h
#ifndef PROFESSOR_H
#define PROFESSOR_H

#include "pessoa.h"

#include <string>

class Professor : public Pessoa
{
public:
	Professor(std::string);
	Professor(std::string, std::string, int, double);
	~Professor();
	std::string getDisciplina();

protected:

private:
	Professor();
	std::string disciplina;
	// ...
};

#endif //PROFESSOR_H

professor.cpp

#include "professor.h"

Professor::Professor(std::string nomeDisciplina)
{
	disciplina = nomeDisciplina;
}

Professor::Professor(std::string nomeDisciplina, std::string nome, int idade, double altura): Pessoa(nome, idade, altura)
{
	disciplina = nomeDisciplina;
}

Professor::~Professor()
{

}

std::string Professor::getDisciplina()
{
	return disciplina;
}

main.cpp

#include<iostream>
#include "professor.h"

int main()
{
	Professor prof1("Matemática");
	std::cout << prof1.getNome() << " leciona " << prof1.getDisciplina() <<
		", tem " << prof1.getIdade() <<
		" anos e mede " << prof1.getAltura() << std::endl;
	
	Professor prof2("Programação", "Maria", 18, 1.75);
	std::cout << prof2.getNome() << " leciona " << prof2.getDisciplina() <<
		", tem " << prof2.getIdade() <<
		" anos e mede " << prof2.getAltura() << std::endl;

	//Professor prof3;	//se descomentado causa um erro

	prof1.setNome("Manel");
	prof1.setIdade(34);
	prof1.setAltura(1.90);
	std::cout << prof1.getNome() << " leciona " << prof1.getDisciplina() <<
		", tem " << prof1.getIdade() <<
		" anos e mede " << prof1.getAltura() << std::endl;

}

Baixar exemplo

Anúncios

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s