Pregunta

Sólo tenía un 'Fundamentos de Programación' conferencia en la universidad y se le dijo que la convención para el uso / Declaración de funciones es tener la función main() en la parte superior del programa, con funciones / procedimientos por debajo de ella y usar declaraciones adelantadas a evitar errores de compilación.

Sin embargo, siempre me he hecho a la inversa -. Funciones en la parte superior main() en la parte inferior y no usar declaraciones adelantadas y no creo que nunca he visto lo contrario

¿Cuál es la correcta? ¿O se trata más bien de preferencia personal? Algunas aclaraciones sería enormemente apreciada.

¿Fue útil?

Solución

Podría ser el caso cuando sus funciones están relacionadas entre sí. Si simplemente los escribe encima de la main() sin el alero-declaración usted tiene que ordenar para que sepan las funciones que dependen. En algunos casos (referencias circulares) que ni siquiera será posible compilar sin declaración hacia adelante.

Al declarar adelante las funciones que no se ejecutará en este tema.

Además al tener main() como primera función, se va a producir código más legible, pero eso es de preferencia tal vez sólo personal.
También podría ser la causa más legible otro codificador tiene en general acerca de las funciones que va a encontrar en el archivo.

Otros consejos

Todo depende de usted. Personalmente, sigo main en la parte inferior debido a los momentos en los que tienen otras funciones en ese país, o es sólo una o dos funciones más pequeños o un fragmento de código.

En código real, tendría que dividir su proyecto de esperar hasta (que tiene múltiples funciones "no relacionadas" en un archivo es malo) y por lo main probablemente sería casi solo en el archivo. Acababas #include las cosas main necesidades para que funcione y el uso de ellos.

Si existe una norma, es tener las declaraciones de funciones en un archivo .h que se incluye. De esa manera, no importa lo que el orden de las funciones en el archivo es. Yo funciones casi nunca escribir sin una declaración, y me toma por sorpresa cuando otras personas hacen.

La mayoría de los profesionales de uso estándar de C ++ es esto.

  • dos archivos por clase : el archivo de cabecera (nombrado por ejemplo, Class.h) , que sólo declara todos los miembros de datos y funciones de clase; y el archivo de aplicación (llamado Class.cpp en el mismo ejemplo), que contiene sólo las implementaciones de estas funciones.
  • la función principal (si la solución tiene que) entra en un archivo llamado, por ejemplo, Main.cpp por sí mismo.

No hay problema en poner varias clases o incluso todo el programa en un archivo cuando se trabaja en proyectos en el hogar o en la escuela a pequeña escala. Debido a la pequeña escala, que en realidad no importa cómo usted ordena las clases o las funciones. Puede hacer lo que es más conveniente para usted. Pero si su profesor requiere que los estudiantes a seguir ciertas normas del código para hacer la tarea (por ejemplo poner main () en primer lugar), entonces usted tiene que seguir estas normas.

Este enfoque es más probable favorecido por su profesor y muy probablemente la razón por la que ella está enseñando como convención. Hay dos opciones aquí, ir con la corriente (es decir, no tratan de interrumpir y potencialmente quedar marcada hacia abajo para cosas porque su profesor siente que no está siguiendo "Convención"), o explicar a ella - no hay necesidad de hacer de esta manera (o de cualquier otra manera), siempre que la intención del código es claro!

El consejo para tener declaraciones (prototipos de funciones) está más relacionado con C y luego a C ++, ya que en C ++ no hay declaraciones de funciones implícitas, por lo que siempre debe declarar antes de su uso. Por lo tanto, que sin duda tienen al menos una declaración de una función que no es definición, si usted tiene una recursión que implica más de una función.

En un pequeño proyecto de uso sea cual sea el estilo que desea pero sea constante. Para un proyecto grande es probable que tengas varios archivos .cpp y tienen las interfaces (ya sean clases o funciones) definidas en los archivos de cabecera. También ser consistente al menos en un solo archivo.

Y la última cosa, he dicho que ser coherente?

Normalmente utilizar la segunda forma porque hay que mantener la declaración de funciones - que debe tener la firma y el nombre correcto, y la OMI, que está escribiendo simplemente excesiva cuando uno podía definir las funciones de primera. Sin mantenimiento, sin pérdida de tiempo.

Creo que el principio que se aplica aquí es "No te repitas". Si se utiliza una declaración adelantada, que estás repitiendo innecesariamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top