Сообщение Re[3]: Ещё немного метапрограммирования от 22.12.2022 15:11
Изменено 22.12.2022 15:13 rg45
Re[3]: Ещё немного метапрограммирования
Здравствуйте, SomeOne_TT, Вы писали:
R>> void Copy(const A& a) { *this = a; }
SO_>Давненько не писал на плюсах, похоже, забыл многое — как это присваивание работает?
*this — это lvalue выражение, доступное для присваивания. Работает так же, как если бы мы написали:
R>> void Copy(const A& a) { *this = a; }
SO_>Давненько не писал на плюсах, похоже, забыл многое — как это присваивание работает?
*this — это lvalue выражение, доступное для присваивания. Работает так же, как если бы мы написали:
A& t = *this;
t = a;
Re[3]: Ещё немного метапрограммирования
Здравствуйте, SomeOne_TT, Вы писали:
R>> void Copy(const A& a) { *this = a; }
SO_>Давненько не писал на плюсах, похоже, забыл многое — как это присваивание работает?
*this — это lvalue выражение, доступное для присваивания. Работает так же, как если бы мы написали:
P.S. Оператор присваивания здесь может быть как определенным пользователем, так и автоматически сгенерированным компилятором, это уже не суть.
R>> void Copy(const A& a) { *this = a; }
SO_>Давненько не писал на плюсах, похоже, забыл многое — как это присваивание работает?
*this — это lvalue выражение, доступное для присваивания. Работает так же, как если бы мы написали:
A& t = *this;
t = a;
P.S. Оператор присваивания здесь может быть как определенным пользователем, так и автоматически сгенерированным компилятором, это уже не суть.