Страница 1 из 1
перегрузка =
Добавлено: 02 ноя 2005, 12:11
®B!N
сколько есть вариантов перегрузки оператора =?
как сделать, чтобы при присваивании одного объекта другому, передавалась не ссылка, а переносились все данные?
Зараннее спасибо
Добавлено: 02 ноя 2005, 16:58
DeeJayC
сколько вариантов напишешь, столько и будет.
Код: Выделить всё
class Point
{
public:
Point &operator=( Point & ); // Right side is the argument.
int _x, _y;
};
// Define assignment operator.
Point &Point::operator=( Point &ptRHS )
{
_x = ptRHS._x;
_y = ptRHS._y;
return *this; // Assignment operator returns left side.
}
Добавлено: 02 ноя 2005, 18:19
Absurd
Код: Выделить всё
// Define assignment operator.
Point &Point::operator=(const Point &ptRHS )
{
_x = ptRHS._x;
_y = ptRHS._y;
return *this; // Assignment operator returns left side.
}
Вообще-то во всех операторах надо const ставит на правый операнд иначе будет куча запарок с STL
Добавлено: 02 ноя 2005, 21:09
®B!N
Спасибо, с экземплом все стало ясно!
DeeJayC писал(а):сколько вариантов напишешь, столько и будет.
Я просто думал, что это описывается вне класса где-то в таком виде
Код: Выделить всё
void operator=(]
и не мог нарыть такой реализации...
Добавлено: 03 ноя 2005, 19:07
DeeJayC
Absurd, а код-то взят из msdn
