Personalmente, prefiero thisStyle
a ThisStyle
para las funciones. Esto es realmente para gusto personal, probablemente influenciado por Java, pero me gusta bastante que las funciones y clases se vean diferentes.
Si tuviera que discutirlo, diría que la distinción es algo más que estética. Se ahorra un poco de pensamiento cuando te encuentras con la construcción de estilo funcional de un temporal. En contra de eso, puede argumentar que en realidad no importa si Foo(1,2,3)
es una función invocada o no; si es un constructor, entonces actúa exactamente como una función que devuelve un valor de Foo de todos modos.
La convención también evita la función-with-misma-nombre-as-a-clase-no-es-un-error fiasco que C++ hereda porque C tiene un espacio de nombres de etiquetas separadas:
#include <iostream>
struct Bar {
int a;
Bar() : a(0) {}
Bar(int a) : a(a) {}
};
struct Foo {
Bar b;
};
int Bar() {
return 23;
}
int main() {
Foo f;
f.b = Bar();
// outputs 23
std::cout << f.b.a << "\n";
// This line doesn't compile. The function has hidden the class.
// Bar b;
}
Bar es, después de todo, tanto un sustantivo como un verbo, por lo que podría definirse razonablemente como una clase en un lugar y una función en otro. Obviamente, hay mejores formas de evitar el choque, como el uso adecuado de los espacios de nombres. Entonces, como digo, realmente es solo porque prefiero el aspecto de las funciones con iniciales en minúscula en lugar de porque realmente es necesario distinguirlas de las clases.
gracias a todos. Iré con myFunction() ya que eso es lo que estoy acostumbrado a – user69514
No hay una forma "correcta", es todo opinión. pero recomiendo encarecidamente que evite los guiones bajos, hace que los nombres de las funciones sean más difíciles de leer. Mi estilo personal es FunctionName, porque es conciso, y es menos desagradable para mí. – MarcusJ