J'ai des problèmes de surcharge en C++. À titre d'exemple du problème, j'ai une classe avec un certain nombre de méthodes étant surchargées, et chaque méthode ayant un paramètre avec un type de données différent. Ma question: existe-t-il un ordre particulier dans la classe où ces méthodes devraient apparaître, pour s'assurer que la bonne méthode est appelée en fonction de son type de données de paramètres?Fonction/Méthode Surcharge C++: Confusion de type de données?
class SomeClass{
public:
...
void Method(bool paramater);
void Method(std::string paramater);
void Method(uint64_t paramater);
void Method(int64_t paramater);
void Method(uint8_t paramater);
void Method(int8_t paramater);
void Method(float paramater);
void Method(double paramater);
void Method(ClassXYZ paramater);
}
Je remarqué qu'il y avait problème parce que lors de l'exécution:
Method("string");
il appelait:
Method(bool paramater);
C'EST COMPLÈTEMENT ANNOYANT. Cette règle de résolution ne répond pas à un concept aussi fondamental. Peut-être que l'OP «par ordre de déclaration» approche intuitive ferait un meilleur travail. –