Tengo 3 funciones de utilidad pequeñas (15 líneas cada una), ¿cuál es la mejor manera de organizarlas? ponerlos en su propio espacio de nombres en un archivo de cabecera?Organización de funciones de utilidad en C++
Respuesta
Crear un archivo separado llamado utility.hpp
y poner todas las declaraciones de funciones en el mismo, preferentemente bajo su propio espacio de nombres que podrían ser simplemente utility
, y luego poner las definiciones en utility.cpp
. Si alguna de las funciones de utilidad es la plantilla de función, debe colocar la definición en el encabezado en sí.
Evite definir la utilidad class
y poner todas las funciones de utilidad en ella como static
miembros. Eso es realmente una mala idea. Una razón por la que es malo es que no puede aprovechar la Búsqueda de nombre dependiente del argumento (ADL).
Use espacio de nombres, en su lugar.
ejemplo,
//utility.hpp
namespace utility
{
void function1();
void function2();
void function3();
template<typename T>
void function4()
{
//function template definition should be here!
}
}
Y luego,
//utility.cpp
#include "utility.hpp"
namespace utility
{
void function1()
{
//code
}
void function2()
{
//code
}
void function3()
{
//code
}
}
Crear una clase de utilidad separada con util.h (declaraciones) y Util.cpp con la implementación. También podría llevarlo más allá al tener una interfaz de utilidad, pero depende.
* clase de utilidad * es una mala idea. – Nawaz
es posible que desee consultar el google styleguide for c++ para algunos consejos útiles sobre este tema ... sin embargo: hay muchas guías de estilo ya que puede hacer cosas de muchas maneras más o menos útiles ... la mejor práctica es elegir una guía de estilo y luego, cúmplelo para todo el proyecto por consistencia ... (a menos que usted/sus equipos se sientan muy incómodos al respecto ...)
No he leído la guía de estilo de google a este respecto en particular, pero en general no es una buena guía de estilo de C++. –
Me pareció muy interesante ya que hay una explicación sobre los pros y contras de cada tema ... pero estoy abierto a sugerencias si puede proporcionar una mejor guía de estilo ;-) – xmoex
Guía de estilo de gafas es muy malo –
- 1. Utilidad de const (C++)
- 2. Prácticas elegantes en "funciones de utilidad aleatorias"
- 3. Organización de proyectos en C Best Practices
- 4. ¿Forma preferida de agrupar funciones de utilidad en Scala?
- 5. C organización # solo proyecto
- 6. Organización de proyectos PHP
- 7. ¿Dónde deberían vivir las funciones de utilidad en Django?
- 8. organización de aplicaciones django
- 9. C++: ¿Cómo diseñar una clase de utilidad?
- 10. Métodos de utilidad en el objetivo-c
- 11. organización de proyectos Redmine?
- 12. Clase de utilidad de serialización genérica C#
- 13. funciones dentro de las funciones en C
- 14. Organización de resultados de clasificación
- 15. Organización de ajustes en Django
- 16. Organización de varios archivos de CoffeeScript
- 17. sobrecarga de funciones en C
- 18. Composición de funciones en C++
- 19. Funciones de amigo en C++
- 20. Funciones de referencia en C++
- 21. sobrecarga de funciones en C++
- 22. Funciones de MATLAB en C++
- 23. funciones de salida en C
- 24. Organización de archivos de origen
- 25. Cualquier utilidad para probar expandir C/C++ #define macros?
- 26. Organización de métodos de extensión
- 27. Gran organización de aplicaciones web backbone.js
- 28. favor explicar la utilidad de los métodos abstractos en C#
- 29. C++ Funciones de miembros vs funciones gratuitas
- 30. C funciones de prototipo
Excepto; nombre las clases util.h \ cpp y el espacio de nombres util; es más conveniente =) –
Además, no hay necesidad del prefijo 'utility_' en el nombre de la función. Eso es lo que es el espacio de nombres para –
@ VJo: Por supuesto, no quise decir que la función debe tener el prefijo 'utility_'. Pero parece que podría confundir a los lectores (especialmente los novatos). Así que edité mi publicación. – Nawaz