Prática com Orientação a Objetos em C++ [parte 1]
O objetivo desse artigo é, através de um exemplo, aplicar diversos conceitos da orientação a objetos, mostrando na prática como utilizá-los. Aviso que mantive no projeto algumas definições para fins pedagógicos e que não refletiriam uma aplicação real.
Considerando a classe mostrada na imagem abaixo, constituída de um atributo público (nome) e outro privado (id) e de 4 métodos públicos, sendo 1 o método construtor da classe (que, obrigatoriamente, possui o mesmo nome da classe).

A codificação dessa classe é mostrada a seguir. Observe que o construtor precisa receber um nome e um valor de identificação. Veja também que como o id é um atributo private e nenhum método altera seu valor, o valor definido na criação do objeto não poderá mais ser alterado, ao contrario do nome que possui o método setNome() que o alterará.
class empresa {
private:
int _id;
public:
string nome;
empresa(string x, int y) {
nome = x;
_id = y;
}
void setNome(string val) {
nome = val;
}
string getNome() {
return nome;
}
int getId() {
return _id;
}
};
Essa é uma definição simples de classe. Para testar seu funcionamento, utilize o código a seguir, que cria o objeto, mostra o nome do objeto, altera diretamente o atributo da classe (por ele ser público) e mostra novamente o nome.
int main() {
empresa teste("Emp. SA", 1); //instancia o objeto com base na classe
cout << "Empresa: " << teste.getNome() << endl;
teste.nome = "Novo nome";
cout << "Empresa: " << teste.getEmpresa();
return 0;
}