Re[7]: Базовое отличие ООП от ФП
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.04.24 02:23
Оценка:
Здравствуйте, _NN_, Вы писали:
_NN>&& означает, что функция может применяться исключительно к временному объекту.
Спасибо, я так и подумал.
_NN>
_NN>#include <string>
_NN>#include <cstdio>

_NN>using namespace std;

_NN>class MyObject {
_NN>    int _v;
_NN>    public: MyObject setField(int v)&& { this->_v = v; return *this; }
_NN>};

_NN>int main() {
_NN>    auto m = MyObject().setField(1); // ok

_NN>    auto m2 = MyObject();
_NN>    m2.setField(1); //  error: 'this' argument to member function 'setField' is an lvalue, but function has rvalue ref-qualifier
_NN>}
_NN>

А как из этого изготовить хоть что-то полезное?
Например, вот такое тоже не работает:

...
auto m2 = m.setField(2);

А это, собственно, и есть одна из основных конструкция ФП.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.