virtuales todas subrutinas las funciones funcion estatica ejemplos comando c++ class constructor

todas - C++-Llamar a una función dentro de una clase con el mismo nombre que la clase



subrutinas arduino (3)

Sugiero que uses espacios de nombres. Pon tu clase en un espacio de nombre diferente a la función.

namespace my_namespace1 { void A() {} } namespace my_namespace2 { struct A {}; } int main() { my_namespace1::A(); my_namespace2::A my_a; }

Por supuesto, la verdadera pregunta es, ¿por qué tienes una clase y una función con un nombre diferente? Una buena regla fácil es crear clases llamadas WithABeginningCapitalLetter y funciones withoutOne. Entonces nunca tendrás este problema. Por supuesto, el STL no hace esto ...

Estaba tratando de escribir una clase en c ++, y encontré un problema bastante extraño: llamar a funciones externas dentro de una clase que tienen el mismo nombre que la clase. Es un poco confuso, así que aquí hay un ejemplo:

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 penúltima línea de 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 afuera, como:

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

Y luego llame a outsideA dentro de A :: C, pero esto parece una solución tonta para el problema. ¿Alguien sabe de una manera más adecuada de resolver esto?



::A("Hello, world.");

debería funcionar bien Básicamente está diciendo "use el A encontrado en el espacio de nombres global"