| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Переопр. равно если поля -- классы |
| Автор: Dims 7.12.2007, 09:23 |
| Нужно ли определять operator= и конструктор по ссылке для класса или структуры, у которого все поля являются либо встроенными типами, либо классами, у которых определён operator= и конструктор по ссылке? Нужно ли переопределять операторы, если члены имеют типа map, set и т.д. из STL? То есть, правильно ли в таком случае будет работать операторы по умолчанию? |
| Автор: Daevaorn 7.12.2007, 09:28 |
это что за зверь такой? |
| Автор: Dims 7.12.2007, 10:26 | ||
Что, уже отменили? Это такой вот конструктор
который создаёт объект типа MyClass на основании другого имеющегося объекта этого типа. Как правило, этот конструктор корректно копирует содержимое старого экземпляра в новый. Он вызывается в некоторых специальных случаях. Точно не помню, каких, типа при передаче параметра в функцию. Как я понимаю, этот конструктор, а также оператор присваивания, надо переопределять, если твой объект должен быть "полноценным", то есть, чтобы его можно было не задумываясь использовать наравне с другими объектами во всех возможных ситуациях. |
| Автор: Dims 7.12.2007, 11:24 |
| То есть, по умолчанию, для структуры, копирующий конструктор выполняет не bitwise copy, а вызывает для членов, если есть, тоже копирующий конструктор? |
| Автор: Lazin 7.12.2007, 11:37 |
| да |