Qué son espacios de nombres para:
espacios de nombres se pretende establecer el contexto solamente por lo que no tiene confilcts de nombres.
reglas generales:
Especificación demasiada contexto no es necesario y se causan más molestias de lo que vale.
Así que usted quiere utilizar su mejor juicio, pero aún así seguir estas reglas 2:
- No sea demasiado general cuando se utilizan espacios de nombres
- No sea demasiado específica al utilizar espacios de nombres
No sería tan estricto sobre cómo usar nombres de espacios de nombres, y simplemente usar espacios de nombres basados en un grupo de código relacionado.
Por qué espacios de nombres que son demasiado generales no son útiles:
El problema de dividir el espacio de nombres empezando por el nombre del producto, es que a menudo tendrá un componente de código, o alguna biblioteca de la base de que es común a múltiples productos.
Tampoco utilizará los espacios de nombres de Product2 dentro de Product1, por lo que especificarlo explícitamente no tiene sentido. Si incluía los archivos de Product2 dentro de Product1, ¿esta conversión de nomenclatura sigue siendo útil?
Por qué espacios de nombres que son demasiado específicos no son útiles:
Cuando tiene espacios de nombres que son demasiado específicas, la línea que separa estos espacios de nombres distintos comenzar a difuminar. Empiezas a utilizar los espacios de nombres dentro de cada uno de ida y vuelta. En este momento, es mejor generalizar el código común bajo el mismo espacio de nombres.
Las clases con toda estática vs plantillas:
"? ¿Por qué debemos crear no clases particulares y no interiores espacios de nombres ¿Por qué debemos crear clases donde todos métodos son estáticos"
Algunas diferencias:
- espacios de nombres pueden estar implícitas utilizando la palabra clave
using
- espacios de nombres puede ser alias, las clases son tipos y pueden ser typedef'ed
- espacios de nombres pueden añadirse a; puede agregar funcionalidad a ella en cualquier momento y agregar a ella directamente
- Las clases no se pueden agregar a sin hacer una nueva clase derivada
- espacios de nombres pueden tener declaraciones adelantadas
- Con las clases que puede tener miembros privados y miembros protegidos
- Las clases pueden ser usados con plantillas
Exactamente cómo dividir:
"Proyecto consiste en 1Gb del código fuente . Así que, ¿cuál es la mejor práctica para módulos dividir en espacios de nombres en el C++?"
Es demasiado subjetiva decir exactamente cómo dividir su código sin el código fuente exacta. División basándose en los módulos embargo sonidos lógicos , simplemente no todo el producto.
1 Gb del código fuente? : o ¡Es un proyecto realmente grande! –