Move Assignment Operator

An example of this as seen in CS247.

Definition

Node& Node::operator=(Node&& other) {
	std::swap(data, other.data);
	std::swap(next, other.next);
	return *this;
}

Usage

Node n{"1", new Node{"2", new Node{"3", nullptr}}};
n = getAlphabet(); // Move assignment operator
 
// Another way
Node b;
n = std::move(b);

Move Constructor vs. Move Assignment Operator

A a("Hello");
A aa("World");
 
A b = std::move(a);  // Move constructor is called to transfer resources from 'a' to 'b'
a = std::move(aa);  // Move assignment operator is called to transfer resources from 'aa' to 'a'