No estoy seguro de cómo ordenar mis funciones en C++. En C, simplemente coloqué una función que usa otra función debajo de esa función, tan cerca como sea posible, eso es bastante común. De esta manera:¿Cómo pedir funciones en C++?
void bar()
{
}
void foo()
{
bar();
}
Sin embargo, en C++, hay varios tipos de funciones:
- funciones libres
- funciones miembro privadas
- funciones miembro públicas
- funciones miembro estáticas
Actualmente estoy maki ng mi pedido función depende de la forma en que se ordenan en el archivo .hpp, por ejemplo:
class Foo_bar {
public:
Foo_bar();
void foo();
private:
int some_member;
void bar();
Pero ahora, si el constructor utiliza foo() o la barra(), estos serán a continuación el constructor en el archivo fuente, inconsistente con mi orden habitual. Por supuesto, pude reordenar mi encabezado para tener en cuenta eso:
class Foo_bar {
private:
int some_member;
void bar();
public:
void foo();
Foo_bar();
Pero creo que es un desastre.
Por otra parte, en Java, lo contrario a mi primer ejemplo parece ser común:
void foo()
{
bar();
}
void bar()
{
}
Eso es debido probablemente a la de arriba hacia abajo pensando común en programación orientada a objetos, en contraste con la de abajo hacia arriba pensando común en programación procedural/funcional. Sin embargo, con funciones gratuitas que no tienen prototipos, este estilo descendente no es posible.
¿Es posible ordenar funciones en C++ de forma constante?
Prefiero pedir mis funciones por lo que estoy trabajando - de modo que cuando al abrir un archivo, es probable que lo que quiero ver esté en la parte superior. Dicho esto, tengo mucha práctica en la búsqueda de ":: methodName", así que tal vez mi método no es el mejor;) – sje397
No entiendo la pregunta. Todas las funciones tienen prototipos y puede declarar funciones gratuitas en un archivo de encabezado o en cualquier otro lugar si es necesario. Siempre que tenga declaraciones visibles para cualquier función que use, puede ordenar definiciones de funciones en el orden que elija. ¿Qué le impide ordenar sus funciones de cualquier manera que considere consistente? –
@Charles: vea los comentarios de forneo a continuación. Al parecer, él piensa que usar las características del lenguaje para lo que estaban destinadas es malo ...? Parece que básicamente está haciendo la pregunta altamente subjetiva "No quiero usar las funciones de idioma disponibles para mí, ¿qué sugieres que haga en su lugar?" Es como decir "Realmente no me gustan las llaves, así que trato de ajustar 1 enunciado por bloque para evitarlas, ¿hay alguna forma consistente de hacerlo así que nunca tengo que usar llaves?" y esperando que alguien diga "Sí, si (exp) declaración; if (sameExp) statement2; ¡obtiene 2 estadísticas sin llaves!" Mismo tipo de Q. – Loduwijk