Probé la siguiente línea:
static const const char* values[];
pero me da la siguiente advertencia en VC++ C4114 advertencia: mismo tipo de clasificación utilizado más de una vez.
¿Cuál es la declaración correcta?
edición:
El objetivo es crear un conjunto inmutable de cadenas de CCómo crear una matriz de static const const char *
Respuesta
Usted escribió const const
en lugar de static const char* const values[];
(donde se define el puntero y los valores subyacentes como const
)
Además, es necesario inicializarlo:
static const char* const values[] = {"string one", "string two"};
+1, Pero, la inicialización depende del contexto, si es un miembro 'estático' de una clase (mi suposición) entonces no hay inicialización se puede hacer en la declaración ... –
¿Lo entiendo correctamente, el primer const es para la cadena y el segundo para la matriz? – Tommy
Para aclarar la palabra clave 'const': Un' const' siempre está relacionado con el "elemento" que le queda. La excepción de esto es que cuando const es la primera palabra en la expresión, entonces se relaciona con el ítem derecho a ella. Entonces, para ser supercorrecto, uno definiría la cadena como 'static const * const values []', que se puede leer de derecha a izquierda: values es una matriz de const punteros para const chars y todo esto es estático. – AquilaRapax
Trate
static const char* const values[];
La idea es poner los dos const
s a ambos lados de *
: la izquierda pertenece a char
(carácter constante), el derecho pertenece a char*
(puntero constante a carácter)
Como un aparte, esto es lo mismo que 'static const * const valores const []' – Dennis
- 1. static const + const como una matriz ligada
- 2. Diferencia entre static const char * y const char *
- 3. Const vs Static Const
- 4. Corrección de const: const char const * const GetName const (// stuff);
- 5. const char * miVar vs const char miVar []
- 6. cómo convertir const WCHAR * a const char *
- 7. const char * a const std :: string &
- 8. PHP5: const vs static
- 9. C++: Significado de const char * const *
- 10. Diferencia entre const char * p y const char * p
- 11. const char * concatenación
- 12. static assert for const variables?
- 13. Double to Const Char *
- 14. C++, donde inicializar static const
- 15. inicialización const char *
- 16. cómo pasar el vector de cadena a foo (char const * const * const)?
- 17. Destructor en const char *
- 18. ¿Qué es char * const argv []?
- 19. Cómo convertir 'const boost :: filesystem2 :: path' en 'const char *'?
- 20. ¿Cuál usar const char [] o const std :: string?
- 21. printf pregunta con una variable const char *
- 22. Declarar cadenas public static readonly versus public const versus public static const
- 23. Conversión implícita de char ** a const char **
- 24. C++ de unsigned char * a const char *
- 25. asignaciones de puntero const char
- 26. Const const char * string a NSString con longitud Y codificación
- 27. Convertir CString en const char *
- 28. convertido BSTR a const char *
- 29. C++ convertir char a const char *
- 30. Static solo contrasta const - diferentes conjuntos POV?
¿Qué desea crear? ¿Una matriz de punteros constantes para caracteres constantes? –