Articles of const

La misma función con const y sin – ¿Cuándo y por qué?

T& f() { // some code … } const T& f() const { // some code … } He visto esto un par de veces ahora (en el libro introductorio que he estado estudiando hasta ahora). Sé que el primer const hace que el valor de retorno sea const, en otras palabras: no modificable. El […]

Confusión con respecto a la modificación de la variable const usando punteros

El siguiente ejemplo añadió confusión en mi comprensión. No puedo entender cómo es posible modificar la variable const local. Por favor, ayúdame a entender lo mismo. /* Compile code without optimization option */ // volatile.c #include int main(void) { const int local = 10; int *ptr = (int*) &local; printf(“Initial value of local : %d […]

¿Deberían usarse calificadores de tipo inútil en los tipos de devolución, para mayor claridad?

Nuestra herramienta de análisis estático se queja de un “calificador de tipo inútil en el tipo de devolución” cuando tenemos prototipos en archivos de encabezado como: const int foo(); Lo definimos de esta manera porque la función devuelve una constante que nunca cambiará, pensando que la API parecía más clara con const en su lugar. […]

¿Realmente necesito implementar un constructor proporcionado por el usuario para objetos const?

Tengo el código: class A { public: A() = default; private: int i = 1; }; int main() { const A a; return 0; } Comstack bien en g ++ (ver ideone ), pero falla en clang ++ con error: la inicialización predeterminada de un objeto de tipo const ‘const A’ requiere un constructor predeterminado […]

¿Puedo usar const en vectores para permitir agregar elementos, pero no modificaciones a los ya agregados?

Mis comentarios sobre esta respuesta me hicieron pensar en los problemas de constness y sorting. Jugué un poco y reduje mis problemas al hecho de que este código: #include int main() { std::vector v; } no se comstackrá – no se puede crear un vector de construcciones. Obviamente, debería haber sabido esto (e intelectualmente lo […]

¿Cuál es la diferencia entre #define y const?

Posibles duplicados: ¿Por qué alguien usaría #define para definir constantes? diferencia entre una macro y una const en c ++ C ++ – enum vs. const vs. #define ¿Cuál es la diferencia entre usar #define y const para crear una constante? ¿Alguien tiene una ventaja de rendimiento sobre el otro? Naturalmente prefiero usar el const […]

Diferencia entre la referencia constante y el parámetro normal

void DoWork(int n); void DoWork(const int &n); ¿Cuál es la diferencia?

Puntero constante vs Puntero a constante

Quiero saber la diferencia entre const int* ptr; y int * const ptr; y cómo funciona Es bastante difícil para mí entender o recordar esto. Por favor ayuda.

Const de nivel superior no influye en la firma de una función

De C ++ Primer 5th Edition, dice: int f(int){ /* can write to parameter */} int f(const int){ /* cannot write to parameter */} Las dos funciones son indistinguibles . Pero como usted sabe, las dos funciones realmente difieren en cómo pueden actualizar sus parámetros. ¿Puede alguien explicarme? EDITAR Creo que no interpreté bien mi […]

constness y punteros a punteros

Estoy muy confundido sobre la palabra clave const . Tengo una función que acepta una matriz de cadenas como parámetro de entrada y una función que acepta una cantidad variable de argumentos. void dtree_joinpaths(char* output_buffer, int count, …); void dtree_joinpaths_a(char* output_buffer, int count, const char** paths); dtree_joinpaths invoca internamente dtree_joinpaths_a después de que ha creado […]