lang:cpp:variable
Ceci est une ancienne révision du document !
Initialisation complexe d'une variable constante
Plutôt que
std::string str; if (i == 1) str = "un"; else if (i == 2) str = "deux"; else str = "trois";
écrire
const std::string str = [&i]() { if (i == 1) return "un"; else if (i == 2) return "deux"; else return "trois"; }(); // Ne pas oublier les parenthèses pour l'exécution de l'opérateur ().
Pointeur sur la méthode d'une classe
// La classe class Classe { public: // Pas ici. const Classe* function(size_t i) const { return this; } // Ici. const Classe* function2(size_t i) const { return this; } }; int main() { // Le pointeur de nom ptr. const Classe* (Classe::*ptr)(size_t i) const = &Classe::function2; Classe c; (c.*ptr)(2); }
Pointer vers une classe template depuis une classe sans template
Il faut mettre une interface commune sans template à la classe template.
struct BaseExample { virtual void do_stuff() = 0; virtual ~BaseExample() {} }; template <typename T> struct Example : BaseExample { ... }; // .. BaseExample *obj;
How can I declare a template pointer without knowing the type? Archive du 21/11/2011 le 18/12/2019
lang/cpp/variable.1583396712.txt.gz · Dernière modification : 2020/03/05 09:25 de root