Puis-je déclarer la variable membre comme const dans la classe de C++? Si oui, comment?Puis-je déclarer la variable membre comme const dans la classe de C++? Si oui, comment?
8
A
Répondre
18
Vous pouvez - vous mettez const devant le nom du type.
class C
{
const int x;
public:
C() : x (5) { }
};
3
Bien sûr, la façon la plus simple comme celui-ci si la valeur sera la même dans toutes les instances de votre classe:
class X
{
public:
static const int i = 1;
};
Ou si vous ne voulez pas statique:
class X
{
public:
const int i;
X(int the_i) : i(the_i)
{
}
};
8
Vous le déclarez comme si vous n'en étiez pas membre. Notez que déclarer une variable comme const aura des effets considérables sur la façon dont la classe est utilisée. Vous aurez certainement besoin d'un constructeur pour l'initialiser:
class A {
public:
A(int x) : cvar(x) {}
private:
const int cvar;
};
Questions connexes
- 1. comment déclarer iterator volatile en C++
- 2. Variable de classe dans la classe javascript
- 3. C#: Emplacement de la variable const dans un binaire
- 4. C++ classe Vector comme membre dans un autre classe
- 5. variable membre statique d'une classe sous-classée
- 6. Comment déclarer la méthode de type usine dans la classe de base?
- 7. Comment/devrait être caché la variable et la fonction de membre statique C++?
- 8. Pointeur de fonction C++ (membre de la classe) vers la fonction de membre non statique
- 9. Comment déclarer deux variables statiques différentes? (C++)
- 10. Problème lors de l'accès aux variables const statiques via les fonctions de membre de classe
- 11. Comment appeler une variable de membre de classe instanciée à l'aide d'une autre fonction sans rapport avec la classe?
- 12. accéder à la variable membre de l'objet thread boost
- 13. Est-ce que tous les compilateurs C++ permettent d'utiliser une variable membre de la classe const int statique en tant que tableau lié?
- 14. Comment déclarer une structure dans une classe?
- 15. Utilisation d'une classe comme une variable publique dans asp.net
- 16. Membre suppléant de variable dans la chaîne en Powershell
- 17. Variable statique/membre
- 18. C++ et const - accès à une fonction membre d'une référence const
- 19. PHP: Bonne façon de déclarer la variable avant utilisation dans la boucle
- 20. Comment créer un membre const pour un type immuable?
- 21. Comment déclarer un tableau de flottants en tant que variable de classe dans Objective-C lorsque la dimension n'est pas définie à l'instant de l'instanciation de classe?
- 22. Remplacer la classe avec la variable
- 23. Appel de la fonction de membre de classe C++ à partir de C (Visual Studio)
- 24. Variable de classe d'objet PHP
- 25. Déclarer les variables membres avec la classe gen dans Clojure
- 26. fonction de membre const non-const et public - coexistant en paix?
- 27. Comment puis-je surcharger l'affectation d'un membre de la classe?
- 28. const Dictionnaire en C#
- 29. Comment puis-je déclarer une variable de classe en tant que virgule flottante dans Moose?
- 30. Syntaxe de l'accolade PHP pour la variable membre
Ceci devrait vous donner une erreur différente, car vous avez déclaré i, sans le définir. Vous aurez besoin d'un "int X :: i;" quelque part. –
@James - ce n'est pas le cas, si le compilateur est suffisamment à jour pour prendre en charge les membres const static inline qui sont initialisés là où ils sont déclarés. –
@James: Je ne crois pas que cela soit vrai pour static int int - vous n'avez pas réellement besoin d'une définition distincte car le compilateur le traite comme une vraie constante. – RichieHindle