Articles of const

Pourquoi le membre const pourrait-il être initialisé deux fois?

Voici un extrait de code qui pourrait être compilé et exécuté sans erreur dans vs2015 #include using namespace std; class A { public: A(int b) :k(b) {}//second time const int k = 666;//first time }; int main() { A a(555); cout << ak << endl; return 0; } La sortie est 555 . Mais pour […]

Renvoyer une référence const ou une copie dans une fonction getter?

Quoi de mieux que par défaut , pour renvoyer une copie (1) ou une référence (2) d’une fonction getter? class foo { public: std::ssortingng str () { // (1) return str_; } const std::ssortingng& str () { // (2) return str_; } private: std::ssortingng str_; }; Je sais 2) pourrait être plus rapide, mais pas […]

Constante DateTime en C #

Je voudrais mettre une date heure constante dans un paramètre d’atsortingbut, comment puis-je faire un datetime constant? Il est lié à un ValidationAtsortingbute du bloc d’application de validation EntLib, mais s’applique également à d’autres atsortingbuts. Quand je fais ceci: private DateTime _lowerbound = new DateTime(2011, 1, 1); [DateTimeRangeValidator(_lowerbound)] J’aurais: An object reference is required for […]

Membre const non statique, impossible d’utiliser l’opérateur d’affectation par défaut

Un programme que je développe utilise beaucoup std::pair . Il y a un point dans mon code auquel le compilateur lance un assez gros: Membre const non statique, ‘const Ptr std :: pair, const double *> :: first’ ne peut pas utiliser l’opérateur d’affectation par défaut Je ne suis pas sûr de ce à quoi […]

C ++ pointeur intelligent const correct

J’ai quelques conteneurs dans une classe, par exemple, vector ou map, qui contiennent des fichiers shared_ptr pour les objects qui se trouvent sur le tas. Par exemple template class MyExample { public: private: vector<tr1::shared_ptr > vec; map<tr1::shared_ptr , int> h; }; Je souhaite avoir une interface publique de cette classe qui renvoie parfois shared_ptrs aux […]

Simplifier la surcharge de const?

J’enseigne une classe de programmation C ++ depuis de nombreuses années et l’une des choses les plus délicates à expliquer aux étudiants est la surcharge de travail. J’utilise couramment l’exemple d’une classe de type vectoriel et sa fonction operator[] : template class Vector { public: T& operator[] (size_t index); const T& operator[] (size_t index) const; […]

Dois-je vraiment implémenter un constructeur fourni par l’utilisateur pour les objects const?

J’ai le code: class A { public: A() = default; private: int i = 1; }; int main() { const A a; return 0; } Il comstack bien sur g ++ (voir ideone ), mais échoue sur clang ++ avec une erreur: l’initialisation par défaut d’un object de type const ‘const A’ nécessite un constructeur […]

Que sont les qualificatifs de premier niveau?

Que veut dire const au qualificatif de “premier niveau” en C ++? Et quels sont les autres niveaux? Par exemple: int const *i; int *const i; int const *const i;

Que signifie un pointeur sur pointeur const en C et en C ++?

Je connais la règle de base pour lire les déclarations de droite à gauche et je suis à peu près sûr de savoir ce qui se passait jusqu’à ce qu’un collègue me dise que: const MyStructure** ppMyStruct; signifie “ppMyStruct est un pointeur sur un pointeur const vers une MyStructure (mutable) ” (en C ++). J’aurais […]

Pourquoi const char * const & = “hello” comstack-t-il?

Je lis un extrait de code d’un livre et trouve ceci: const char* const & a = “hello”; //can comstack const char*& a = “hello”; //cannot Tout ce que je sais, c’est que lors de l’initialisation d’une référence, la conversion de tableau en pointeur n’aura pas lieu. const char* const & , une référence à […]