Preguntas etiquetadas con const

105
¿Cómo inicializar la variable miembro const en una clase?

#include <iostream> using namespace std; class T1 { const int t = 100; public: T1() { cout << "T1 constructor: " << t << endl; } }; Cuando intento inicializar la variable miembro const tcon 100. Pero me da el siguiente error: test.cpp:21: error: ISO C++ forbids...

104
¿Por qué argc no es una constante?

int main( const int argc , const char[] const argv) Como el artículo n. ° 3 de C ++ efectivo dice "Use const siempre que sea posible", empiezo a pensar "¿por qué no hacer estos parámetros 'constantes' const"? ¿Existe algún escenario en el que argcse modifique el valor de en un...

102
C ++ 0x lambda captura por valor siempre const?

¿Hay alguna forma de capturar por valor y hacer que el valor capturado no sea constante? Tengo un functor de biblioteca que me gustaría capturar y llamar a un método que no es constante pero que debería serlo. Lo siguiente no se compila, pero hacer foo :: operator () const lo soluciona. struct...

100
Acceso a elementos de mapa const de C ++

Intenté usar el operador [] para acceder al elemento en un mapa constante de C ++, pero este método falló. También intenté usar "at ()" para hacer lo mismo. Funcionó esta vez. Sin embargo, no pude encontrar ninguna referencia sobre el uso de "at ()" para acceder al elemento en un mapa constante de...

13
¿Cómo se puede evaluar un const expr tan rápido?

He estado probando expresiones constantes que se evalúan en tiempo de compilación. Pero jugué con un ejemplo que parece increíblemente rápido cuando se ejecuta en tiempo de compilación. #include<iostream> constexpr long int fib(int n) { return (n <= 1)? n : fib(n-1) + fib(n-2); }...

9
¿Cómo evitar la modificación de los datos de la matriz?

Digamos que tengo una clase que se ve así (esto es solo un ejemplo): class A { double *ptr; public: A() : ptr( new double[100] ) {} A( const A &other ) { other.ptr[7] = 15; } void doNotChangeMyData() const { ptr[43] = 14; } void changeMyData() { ptr[43] = 14; } ~A() { delete[] ptr;...