Czy mogę zadeklarować zmienną składową jako const w klasie C++? Jeśli tak, jak?Czy mogę zadeklarować zmienną składową jako const w klasie C++? Jeśli tak, jak?
8
A
Odpowiedz
18
Możesz - umieszczasz const przed nazwą typu.
class C
{
const int x;
public:
C() : x (5) { }
};
3
Oczywiście, najprostszym sposobem jest podobny do tego, jeżeli wartość będzie taka sama we wszystkich instancji klasy:
class X
{
public:
static const int i = 1;
};
Lub jeśli nie chcesz to statyczna:
class X
{
public:
const int i;
X(int the_i) : i(the_i)
{
}
};
8
Deklarujesz tak, jak gdybyś nie był członkiem. Zauważ, że deklarowanie zmiennej jako const będzie miało znaczny wpływ na sposób użycia klasy. Z pewnością będziesz potrzebował konstruktora, aby go zainicjować:
class A {
public:
A(int x) : cvar(x) {}
private:
const int cvar;
};
Powiązane problemy
- 1. Czy można mieć zmienną składową "auto"?
- 2. Jak uwolnić statyczną zmienną składową w C++?
- 3. Czy mogę zadeklarować zmienną w html?
- 4. Jak mogę zadeklarować zmienną klasy jako punkt zmiennoprzecinkowy w Moose?
- 5. Jak mogę zadeklarować zmienną globalną w LLVM?
- 6. Powiązanie ze zmienną składową
- 7. Pole odniesienia const jako własność readonly w klasie C++
- 8. PHP: zadeklarować zmienną klasy jako obiekt stdClass
- 9. zadeklarować tablicę const int w C++
- 10. Jak zadeklarować zmienną "chronioną" w swift
- 11. Czy możesz zadeklarować atrybut jako prywatny w klasie abstrakcji?
- 12. Czy można zadeklarować zmienną wygody GDB jako tablicę?
- 13. C# zadeklarować zmienną do if
- 14. Czy mogę zadeklarować zmienną globalną w Xquery na serwerze Marklogic?
- 15. jak zadeklarować zmienną NSString z podwójnym wskaźnikiem
- 16. Jak mogę zadeklarować zmienną globalną w Matlab dla kilku funkcji?
- 17. Dodaj zmienną składową/metodę do generatora Pythona?
- 18. ASP.NET C# musi zadeklarować zmienną skalarną
- 19. Jak ustawić funkcję składową jako parametr?
- 20. wypełnianie tablicy int, która jest zmienną składową
- 21. Jak zadeklarować zmienną globalną w VBA?
- 22. const Słownik w C#
- 23. Czy mogę zadeklarować słownik z dynamiczną tablicą jako typ wartości?
- 24. Jak zadeklarować stałą zmienną w skrypcie powłoki?
- 25. Jak zadeklarować zmienną typu List <string> w typeScript?
- 26. C++ Inicjuje klasę podstawową "const int w klasie pochodnej?
- 27. Jak zadeklarować zmienną globalną z klasy?
- 28. C++ Funkcje prywatne: czy przekazywać zmienną składową klasy według parametru funkcji, czy nie
- 29. Czy można użyć listy inicjalizacji klasy Lambda w klasie?
- 30. C# - Czy ten zadeklarowany ciąg traktowany jest jako const?
To powinno dać ci inny błąd, ponieważ podałeś deklarację i, nie definiując jej. Będziesz potrzebował "int X :: i;" gdzieś. –
@James - nie tak, jeśli kompilator jest wystarczająco aktualny, aby obsługiwać wbudowane statyczne elementy const, które są inicjowane w miejscu, w którym są zadeklarowane. –
@James: Nie wierzę, że to prawda w przypadku statycznej const int - nie potrzebujesz właściwie oddzielnej definicji, ponieważ kompilator traktuje ją jako stałą rzeczywistą. – RichieHindle