Agenda

  • Orientação à objetos e Classes em C++
  • Visibilidade de variáveis e funções
  • Exceptions
  • Namespaces
  • STL
  • Templates

Orientação à objetos

Um personagem de um jogo:

  • Pula
  • Chuta
  • Soca

A questão é: alguns personagens chutam e socam de forma diferente.


class Personagem {
	void pular();
	void chutar();
	void socar();
}
						


class Ruy : public Personagem {
    void pular() {
        this.altura_max = 10;
    }
}
						


class Chunli : public Personagem {
    void pular() {
        this.altura_max = 15;
    }
}
						


Personagem player1 = new Ruy();
Peronsagem player2 = new Chunli();
                        

Visibilidade de variáveis e funções

public

Função/variável que está visível para classes filhas e nas instâncias.

Padrão quando não há uma visibilidade definida.


class PublicExample {
	public:
	int a_number;
	void set_a_number(int number_to_set);
	int get_a_number();
}
						

private

Função/variável que está visível apenas para classes filhas.


class PrivateExample {
	private:
	int a_number;

	public:
	void set_a_number(int number_to_set);
	int get_a_number();
}
						

protected

Função/variável é visível apenas dentro da própria classe.


class ProtectedExample {
	protected:
	int a_number;

	public:
	void set_a_number(int number_to_set);
	int get_a_number();
}