Je dois exposer un tableau de fonctions dans mon application. Ces fonctions sont en fait des méthodes de cette classe et je remplirai le tableau dans le constructeur. Par exemple:Comment exposer un tableau de fonctions en tant que membre de classe en C++?
void Cpu::print() { // some func
std:cout << "hi";
}
void Cpu::Cpu() { // class ctor
funcArray = { &Cpu::print }
}
Je veux faire ceci:
Cpu myCpu;
(myCpu.*funcArray[0])();
Toutes mes fonctions vont suivre la même signature "void()".
Est-ce possible?
Oui, mais pourquoi? C'est une odeur de design IMO. –
À moins que vous ne vouliez obscurcir votre code, je suis à peu près sûr qu'il y a un ** beaucoup ** meilleur moyen de réaliser tout ce que vous essayez de faire. –
Vous pouvez utiliser 'std :: vector' comme votre type de données de base, mais je suis d'accord que le design peut être discutable. –