Я хочу изменить конструктор, чтобы использовать список инициализации, как в следующем примере:
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!
К сожалению, я не могу сделать версию 2, потому что вы не можете использовать указатель this
для элементов данных, поскольку (я предполагаю), что они еще не существуют на тот момент. Как же мне решить проблему сокрытия имени (т. е. мой параметр и мой член данных имеют одно и то же имя)?