J'essayais d'écrire une classe en C++, et je suis tombé sur un problème plutôt étrange: appeler des fonctions externes à l'intérieur d'une classe ayant le même nom comme la classe. Il est un peu déroutant, donc voici un exemple:C++ - Appeler une fonction dans une classe avec le même nom que la classe
void A(char* D) {
printf(D);
}
class A
{
public:
A(int B);
void C();
};
A::A(int B) {
// something here
}
void A::C() {
A("Hello, World.");
}
Le compilateur se plaint à la deuxième à la dernière ligne qu'il ne peut pas trouver une fonction A (char *), parce qu'il est à l'intérieur de la classe, et le constructeur a le même nom que la fonction. Je pourrais écrire une autre fonction en dehors, comme:
ousideA(char* D) {
A(D);
}
Et puis appelez outsideA l'intérieur de A :: C, mais cela semble être une solution stupide au problème. Quelqu'un sait-il d'une manière plus appropriée de résoudre ceci?