Estaba intentando escribir una clase en C++, y encontré un problema bastante extraño: llamar a funciones externas dentro de una clase que tiene el mismo nombre como la clase. Es un poco confuso, así que aquí está un ejemplo:C++ - Llamar a una función dentro de una clase con el mismo nombre que la clase
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.");
}
El compilador se queja en la segunda a la última línea que no puede encontrar una función A (char *), porque está dentro de la clase, y el constructor tiene el mismo nombre que la función. Podría escribir otra función fuera, como:
ousideA(char* D) {
A(D);
}
y luego llamar outsideA interior de un :: C, pero esto parece ser una solución al problema tonta. ¿Alguien sabe de una forma más adecuada de resolver esto?