C ++ - Appeler une fonction dans une classe avec le même nom que la classe

J'étais en train d'écrire une classe en c++, et je suis tombé sur un étrange problème: appelez en dehors des fonctions à l'intérieur d'une classe qui ont le même nom que la classe. C'est un peu déroutant, donc voici un exemple:

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 seconde à la dernière ligne qu'il ne peut pas trouver une fonction(char*), parce qu'il est à l'intérieur de la classe, et le constructeur qui a le même nom que la fonction. Je pourrais écrire une autre fonction à l'extérieur, comme:

ousideA(char* D) {
  A(D);
}

Et ensuite appeler outsideA à l'intérieur d'Un::C, mais cela semble être un idiot solution au problème. Quelqu'un sait d'un plus bonne façon de résoudre ce problème?

source d'informationauteur Xymostech | 2009-06-30