Cześć. Mam sobie taką klasę
class Postac
{
string imie;
public:
Postac(string);
void powiedz();
};
Postac::Postac(string n)
{
imie = n;
}
Następnie w int main tworzę 5 obiektów
int main()
{
Postac Adam("Adam");
Postac Piotr("Piotr");
Postac Kacper("Kacper");
Postac Radek("Radek");
Postac Mateusz("Mateusz");
}
I w tym momencie mam zagwozdkę. Chciałbym aby każdy z tych obiektów miał swoją własną opcję dialogową (Mogą mieć również kilka opcji). Oczywiście mógłbym sprawdzać na if'ach if(imie == "Adam") jednak przy większej ilości postaci będzie (mam wrażenie) to bardzo męczące oraz nieestetyczne kiedy musiałbym stworzyć 70 if'ów (lub tworzyć oddzielnie void powiedzAdam() itd). Czy powinienem to rozwiązać w taki sposób
class Postac
{
public:
virtual void powiedz()=0;
};
class Adam :public Postac
{
string imie;
public:
Adam(string n)
{
imie = n;
}
virtual void powiedz()
{
cout<<"Czesc jestem Adam"<<endl;
}
};
int main()
{
Adam adam("Adam");
Postac *wybor;
wybor = &adam;
wybor -> powiedz();
}
Jest na to inny, lepszy sposób czy ten jest jak najbardziej poprawny?