I'm learning OOP with C ++. I made a program here to train the question of object arrays. My question eh: The program is working, but was it efficient for me to have put the show_dados2 function as independent? I could not develop the logic to put it as a member function of the person class leaving the attributes as private because the function handles more than one object.
EDIT:
#include"stdafx.h"
#include<iostream>
#include<string>
using namespace std;
#define TAMPESSOAS 4
class pessoa
{
private:
string nome,signo;
int idade;
public:
void mostra_dados();
void pega_dados();
};
void mostra_dados2(pessoa *pessoas, int cont)
{
int cont2;
for (cont2 = 0; cont2 < cont; cont2++)
pessoas[cont2].mostra_dados();
}
int main()
{
pessoa pessoas[TAMPESSOAS];//Declaração de um vetor do tipo pessoa
int cont=0;
char continuar;
cout << "\nContinuar a pegar dados? 1 para sim: ";
cin >> continuar;
while (continuar == '1')
{
pessoas[cont].pega_dados();
cont++;
cout << "\nContinuar a pegar dados? 1 para sim: ";
cin >> continuar;
}
mostra_dados2(pessoas, cont);
#if WIN32//Só será executado se o SO for windows
system("PAUSE");
#endif
return 0;
}
void pessoa::pega_dados()
{
cout << "\nNome: ";
cin >> nome;
cout << "\nSigno: ";
cin >> signo;
cout << "\nIdade: ";
cin >> idade;
}
void pessoa::mostra_dados()
{
cout << "\nNome: " << nome << "\nIdade: " << idade << "\nSigno: " <<
signo << endl << endl;
}