| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Помогите найти ошибку |
| Автор: KIDD 21.5.2004, 09:25 | ||
| Хочу создать массив объектов с помощью vector. Компилятор ругается ошибкой(см внизу) Где я ошибся?
Выдает ошибку error C2558: class 'CMyPoint' : no copy constructor available or copy constructor is declared 'explicit' Что неправильно???? |
| Автор: bel_nikita 21.5.2004, 09:38 | ||
Попробуй так:
|
| Автор: KIDD 21.5.2004, 10:38 |
| А после мне я так понимаю delete point2 противопоказано? |
| Автор: bel_nikita 21.5.2004, 10:47 | ||
Конечно. Когда очищаешь вектор - тогда и удаляй объект. Ну, или там, когда он тебе уже не нужен |
| Автор: KIDD 21.5.2004, 10:54 | ||
а когда мне например надо будет удалить элемент for exmple №5
или как? |
| Автор: Yuri Burger 21.5.2004, 10:57 | ||||
Он же тебе человеческим языком сказал - нет конструктора копирования ;) Определи в своем CMyPoint конструктор вида: CMyPoint(const CMyPoint& rhs) { *this=rhs; } суда по твоему примеру оператор = срабатывает, если же нет, тогда в теле копируй все ручками. Вообщето дефолтный копирующий конструктор генерится автоматом, но сдесь видимо CObject насолил... |
| Автор: mr.DUDA 21.5.2004, 10:57 | ||
Зачем было порождать свой класс от CObject ? Вот это компилируется без проблем:
|
| Автор: bel_nikita 21.5.2004, 11:04 | ||||
Млин, опередили
Типа того:
Эта фигня нужна потому, что erase- работает с итераторами (вроде бы |
| Автор: KIDD 21.5.2004, 11:08 |
| Спасибо bel_nikita и mr DUDA за оказанную помощь!!!! |