Stavo cercando di scrivere una classe in C++ e mi sono imbattuto in un problema piuttosto strano: chiamare funzioni esterne all'interno di una classe che ha lo stesso nome come la classe. E 'un po' di confusione, ecco un esempio:C++ - Chiamare una funzione all'interno di una classe con lo stesso nome della 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.");
}
Il compilatore si lamenta alla penultima riga che non riesce a trovare una funzione A (char *), perché è all'interno della classe, e il costruttore ha lo stesso nome della funzione. Potrei scrivere un'altra funzione al di fuori, come:
ousideA(char* D) {
A(D);
}
E poi chiamare outsideA all'interno di A :: C, ma questa sembra una soluzione stupida al problema. Qualcuno sa di un modo più corretto per risolvere questo?