2011-11-22 18 views

Respuesta

46

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 
    } 
} 
+0

Excepto; nombre las clases util.h \ cpp y el espacio de nombres util; es más conveniente =) –

+0

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 –

+0

@ 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

-1

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.

+5

* clase de utilidad * es una mala idea. – Nawaz

0

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 ...)

+3

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++. –

+0

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

+2

Guía de estilo de gafas es muy malo –