Jump to content

Projeto com Classes


mariajoao28
 Share

Recommended Posts

Olá pessoal!

Bem, é o meu primeiro tópico aqui, porque estou a dar as "belas" classes de C++, e perceber isto é uma cena que a mim não me assiste.

Ora, tenho que fazer um projeto que tenha as seguintes classes:

    - PESSOA:

              - nome - privado

              - idade - protegido

              - altura - protegido

              - morada - privado

              - sexo - privado

          E tenho que usar as funções:

                - Pessoa()

                - Get()

                - Set()

  - PROFISSÃO:

                - tipo_profissao - publico

                - nome_profissao - pubico

                - custo_hora - publico

  - EMPRESA:

                - nome_empresa - publico

                - quantidade_empregados - publico

          E tenho que usar as funções:

                - media_idades()

                - acima_media_altura()

Depois, ainda tenho uma herança dupla:

    - EMPREGADO : PESSOA, PROFISSÕES

                - n_empregado - privado

                - codigo_funcao - privado

                - comissao - privado

          E tenho que usar as funções:

                - salario_total()

                - Set()

                - Get()

A sério, pessoal, ajudem-me, já chumbei 3 módulos e quero ver se passo a este. Dêm-me umas luzes disto, claro que não exijo que me façam o programa todo, mas ajudem-me, tou kind of desesperada.

OBRIGADÃO

Link to comment
Share on other sites

Boas, qual é a dúvida exatamente?

Uma class é composta por variáveis e funções quase como uma estrutura, mas tem suporte de heranças.

vou pegar na primeira class e tentarei explicar o como se faz:

/*		-PESSOA:
               - nome - privado
               - idade - protegido
               - altura - protegido
               - morada - privado
               - sexo - privado
           E tenho que usar as funções:
                - Pessoa()
                - Get()
                - Set()
*/

class Pessoa //defenição do nome da class
{
	private:	//as variaveis seguintes só serão acessiveis dentro das funções desta class
		string nome;
		string morada;
		bool   sexo;
	protected:	//as variaveis seguintes serão acessiveis dentro das funções desta class,
				// nas classes que herdarem desta e friends
		int		altura;
		int		idade;
	public:		//estas funções publicas
		Pessoa() //construtor, que será chamado quando alguma variavel de pessoa for criada
		{
			//escreves o que queres que faça, quando a variavel Pessoa for criada
		}

		int Get();	//não sei o que irá returnar
		void Set()
		{
			//codigo
		}
};

//agora podemos implementar a função Get(), não quis "implementar" a função em cima,
//	para tu saberes que dá para implementar fora da funcao

int Pessoa::Get()
{
	//código
}

//herança de classes

/* - EMPREGADO : PESSOA, PROFISSÕES

*/

class Patrão : public Pessoa, Profissoes // para a class herdar de outra tem que ser assim
{
	/*
	etc....
	*/
};

Já agora penso que as funções GET e SET serão virtuais, mas não sei, qualquer dúvida que tenhas diz.

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

get e set, ou melhor get'ers e set'ers são um modelo de acesso aos dados que deverão ser desta forma:

class Pessoa {
...
public:
    std::string getNome();
    void setNome(std::string nome);
    (e por ai adiante)
...
}

std::string Pessoa::getNome() {
    return this->nome;
}

void Pessoa::setNome(std::string nome) {
    this->nome = nome;
}
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.