J'ai une classe C++ destinée à être héritée. Tous ses enfants hériteront d'une méthode:Classe enfant en tant que type de retour pour une méthode de classe
class Record {
public:
RETTYPE* all();
};
class Child : public Record {
int age;
char *name;
};
int main() {
Child boo;
Child boos* = boo->all(); // Pointer to array of Children
return 0;
};
Comment puis-je faire retourner une méthode (un pointeur vers) elle-même? Je ne peux pas simplement dire Record all();
car Child
n'est pas Record
. La méthode ne sera jamais appelée Record
. Toujours sur une classe héritée de Record
.
Il est vous qui doit nous dire pourquoi vous mettez la méthode tout() à la classe de base. Pourquoi? Si seulement pour la réutilisation de code, je pense que vous devriez repenser cela. Si pour un comportement polymorphique, faites-le virtuel. Child est un type d'enregistrement qui peut renvoyer un enregistrement * mais C++ prend en charge la covariance du type de retour –