Dúvida! quando escrevo: Conta umaOutraConta("173813", Titular(Cpf("234.873.912-02"), "Gertrudes")), consegui mas tive dificuldade para entender como faço para recuperar cada elemento!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Dúvida! quando escrevo: Conta umaOutraConta("173813", Titular(Cpf("234.873.912-02"), "Gertrudes")), consegui mas tive dificuldade para entender como faço para recuperar cada elemento!
Oi, Davi! Tudo bem?
Sobre a recuperação de elementos em uma Conta usando C++ e Orientação a Objetos, vamos entender como acessar cada informação depois de criar o objeto.
Quando você escreve:
Conta umaOutraConta("173813", Titular(Cpf("234.873.912-02"), "Gertrudes"));
Você está criando um objeto Conta que recebe dois dados: o número da conta e um objeto Titular. Para recuperar essas informações, a classe precisa disponibilizar métodos de acesso, normalmente chamados de getters.
Por exemplo, se a classe Conta tiver algo semelhante a:
class Conta {
private:
string numero;
Titular titular;
public:
string getNumero() {
return numero;
}
Titular getTitular() {
return titular;
}
};
O método getNumero() retorna o número da conta, enquanto getTitular() retorna o objeto Titular.
Assim, você poderia fazer:
cout << umaOutraConta.getNumero() << endl;
cout << umaOutraConta.getTitular().getNome() << endl;
cout << umaOutraConta.getTitular().getCpf().getCpf() << endl;
Nesse caso, existe uma sequência de objetos: Conta possui um Titular, que possui um Cpf. Por isso, podemos acessar cada nível chamando o método correspondente.
O resultado seria algo próximo de:
173813
Gertrudes
234.873.912-02
Dica: se durante a atividade você encontrou dificuldade para "recuperar cada elemento", observe quais atributos são private e quais métodos públicos a classe oferece para acessá-los. Em C++, essa separação faz parte do conceito de encapsulamento.
Uma boa prática é manter os atributos privados e fornecer métodos públicos específicos para leitura ou alteração dos valores, em vez de acessar os atributos diretamente.
Você quer aprofundar agora em getters e setters, encapsulamento ou na relação entre Conta, Titular e Cpf?