Je veux modifier un constructeur d'utiliser une liste d'initialisation comme dans l'exemple suivant:Nom caché dans la liste d'initialisation du constructeur
class Foo
{
public:
Foo(std::wstring bar);
private:
std::wstring bar;
};
// VERSION 1:
Foo::Foo(std::wstring bar) {this->bar = bar}
// VERSION 2:
Foo::Foo(std::wstring bar) : this->bar(bar) {} // ERROR!
Malheureusement je ne peux pas la version 2 parce que vous ne pouvez pas utiliser le pointeur this
pour les membres de données depuis (je devine) ils n'existent pas encore à ce point. Comment puis-je gérer le problème de masquage du nom (c'est-à-dire que mon paramètre et mon membre de données portent le même nom)?