Я пытался написать класс в С++, и я столкнулся с довольно странной проблемой: вызов внешних функций внутри класса с тем же именем, что и класс. Это немного запутанно, так вот пример:
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.");
}
Компилятор жалуется со второй на последнюю строку, что не может найти функцию A (char *), потому что она находится внутри класса, а конструктор имеет то же имя, что и функция. Я мог бы написать другую функцию снаружи, например:
ousideA(char* D) {
A(D);
}
И затем вызовите outA внутри A:: C, но это кажется глупым решением проблемы. Кто-нибудь знает более подходящий способ решить эту проблему?