|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.11.2011, 20:58 | #1 |
Пользователь
Регистрация: 09.08.2010
Сообщений: 48
|
Копирование классов
Описываю классом структуру Вирта - представление графа системой указателей. Как описать грамотное присваивание одного обьекта другому? Я попытался перегрузить присваивание, но как-то бесуспешно:
Код:
|
20.11.2011, 21:02 | #2 |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
Если вы понимаете суть копирующего оператора присваивания и понимаете семантическую суть операции присваивания для вашего графа, то в чем проблема?! Выразите чеоез конструкции С++ смысл операции присваивания для вашего графа.
Со мной можно встретиться на www.clipper.borda.ru
|
20.11.2011, 21:10 | #3 | |
Пользователь
Регистрация: 09.08.2010
Сообщений: 48
|
Цитата:
Правило трёх (также известное как «Закон Большой Тройки» или «Большая Тройка») — правило в C++, гласящее, что если класс или структура определяет один из следующих методов, то они должны явным образом определить все три метода[1]: Деструктор Конструктор копирования Оператор присваивания копированием Т.е. надо и копирующий конструктор, и присваивание делать, чтобы все работало, или как? |
|
20.11.2011, 21:21 | #4 |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
Вам нало определиться, как вы хотите присваивать один объект другому, и почему вас не устраивает копирующий оператор присваивания по умолчанию. То есть забудьте про С++ и спросите себя, как должны присваиваться объекты вашего класса. У вас в этом ясности нет.
Со мной можно встретиться на www.clipper.borda.ru
|
20.11.2011, 21:28 | #5 |
Пользователь
Регистрация: 09.08.2010
Сообщений: 48
|
Не устраивает потому, что класс содержит в часности большую и толстую систему указателей на записи, присваивание по умолчанию копирует только ссылки, а не значения, и в результате при вызове деструктора для графа, в который осуществлялось присваивание, исходный граф тоже разрушается.
Как должны - вот, попытался перегрузить оператор присваивания, эффекта 0. Почему - не понимаю, прошу помочь. |
20.11.2011, 21:47 | #6 |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
Я так понимаю, вы так и не определились, как должны присваиваться ваши узлы. Например, есть узел Trailer. Как один такой узел должен присваиваться другому, и что при этом должно произойти. Я вам еще раз говорю, забудьте про С++, и на словах для себя четко сформулируйте, что означает операция присваивания одного узла другому. Тогда все будет ясно.
Со мной можно встретиться на www.clipper.borda.ru
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Реализация классов. С++ | Miito | Фриланс | 1 | 21.05.2010 20:04 |
С++ использование классов | moron | Общие вопросы C/C++ | 0 | 03.04.2010 22:40 |
Реализацыя классов в С++ | zoluxa | Помощь студентам | 1 | 23.03.2010 16:29 |
Создание классов и использование объектов классов при написании программ в среде C++. | Frozen inside | Помощь студентам | 0 | 16.04.2009 23:18 |