Я перехожу к основам перегруженных операторов, в частности оператора присваивания. Я пытаюсь понять, использование перегрузки в диктуя копию и переместить поведение после этого:Перегруженный оператор присваивания для операций копирования/перемещения?
Я нашел пример они дают весьма неясными.
Это базовый код, который я написал до сих пор, чтобы проиллюстрировать перегрузку. Как этот код можно редактировать, чтобы проиллюстрировать использование перегрузки при настройке копирования и перемещения?
class Distance
{
public:
int feet, inches;
Distance()
{
feet = 0;
inches = 0;
}
Distance(int f, int i)
{
feet = f;
inches = i;
}
auto operator=(Distance &D)->void //Use operator to perform additional operation (adding 100)
{
feet = D.feet + 100;
inches = D.inches + 100;
}
};
int main()
{
Distance D1;
D1.feet = 10;
D1.inches = 12;
Distance D2;
D2 = D1;
std::cout << D2.feet << std::endl;
}
Неужели все еще неясно, даже после прочтения? Или что именно вас беспокоит? – holmicz
Для тех, кто этого не понимает, - опубликовал комментарий, в котором сообщалось, что Stroupstrup имеет целую главу о операторах присваивания, просто чтобы понять это. – holmicz