¿Puedo declarar la variable miembro como const en la clase de C++? En caso afirmativo, ¿cómo?¿Puedo declarar la variable miembro como const en la clase de C++? En caso afirmativo, ¿cómo?
8
A
Respuesta
18
Usted puede - usted pone const delante del nombre del tipo.
class C
{
const int x;
public:
C() : x (5) { }
};
3
Sin duda, la forma más sencilla es así si el valor será el mismo en todas las instancias de la clase:
class X
{
public:
static const int i = 1;
};
O si no desea que estática:
class X
{
public:
const int i;
X(int the_i) : i(the_i)
{
}
};
8
Lo declara como si fuera un miembro. Tenga en cuenta que declarar una variable como const tendrá efectos considerables en la forma en que se usa la clase. Definitivamente necesitarás un constructor para inicializarlo:
class A {
public:
A(int x) : cvar(x) {}
private:
const int cvar;
};
Cuestiones relacionadas
- 1. C++ Variable declarable en el cuerpo de la función, pero no miembro de la clase?
- 2. ¿Alguna posibilidad de declarar indexadores en C# como miembro abstracto?
- 3. Flujo de C++ como variable miembro
- 4. PHP: ¿por qué no pude declarar la variable const estática?
- 5. Declarar la variable enum en Java bean
- 6. ¿Puede una clase C++ incluirse como miembro?
- 7. Matriz como miembro privado de la clase
- 8. ¿Cómo declarar una variable miembro constante estática de una clase que implica algunos cálculos simples?
- 9. declarar una instancia de una clase const
- 10. cambiando el valor de la variable const en C++
- 11. ¿Cómo puedo declarar una variable de clase como punto flotante en Moose?
- 12. C++ - Inicializando un mapa estático como miembro de clase privada
- 13. ¿Puedo usar javax.script en el desarrollo de Android y, en caso afirmativo, cómo?
- 14. ¿Por qué la inicialización de la variable de miembro entero (que no es const estática) no está permitida en C++?
- 15. ¿Todos los compiladores de C++ permiten usar una variable de miembro de clase estática const int como una matriz enlazada?
- 16. Almacenamiento de un método como una variable miembro de una clase en C#
- 17. declarar una matriz de INT const en C++
- 18. decltype (función) como miembro de la clase
- 19. variable miembro python de instancia funciona como variable miembro, y algunos funciona como variable estática
- 20. C# serializar miembro privado de la clase
- 21. ASP.NET C# Debe declarar la variable escalar
- 22. ¿Cómo puedo mejorar este diseño que me obliga a declarar una función miembro const y declarar variables mutables?
- 23. Asignación de miembro en una función const
- 24. const int vs const int como parámetro de la función en C++ y C
- 25. PHP5. Dos formas de declarar una matriz como miembro de la clase
- 26. ¿Qué puedo "reenviar declarar" en C++?
- 27. Inicialización en C++ de variable de miembro estático no constante?
- 28. ¿Diferencia entre la variable miembro y la propiedad miembro?
- 29. ¿Cómo declarar una instancia de clase como una constante en C#?
- 30. cómo devolver adecuadamente una matriz (miembro de la clase) en C++?
Eso debería darte un error diferente, como dijiste i, sin definirlo. Necesitará un "int X :: i;" algun lado. –
@James: no es así, si el compilador está actualizado lo suficiente para admitir miembros de const estáticos en línea que se inicializan donde se declaran. –
@James: No creo que eso sea cierto para static const int; en realidad, no necesita una definición separada porque el compilador la trata como una constante verdadera. – RichieHindle