Próbowałem napisać klasę w języku C++, i natrafiłem na dość dziwny problem: wywoływanie funkcji zewnętrznych wewnątrz klasy o tej samej nazwie jako klasa. To trochę dziwne, tak oto przykład:C++ - Wywołanie funkcji wewnątrz klasy o tej samej nazwie co klasa
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.");
}
Kompilator narzeka na przedostatniej linii, że nie może znaleźć funkcja A (char *), ponieważ jest wewnątrz klasy, a konstruktor ma taka sama nazwa jak funkcja. Mógłbym napisać inną funkcję na zewnątrz, jak:
ousideA(char* D) {
A(D);
}
a następnie zadzwonić outsideA wewnątrz :: C, ale wydaje się to głupie rozwiązanie problemu. Ktoś wie o lepszym sposobie rozwiązania tego problemu?