|
|
|
Вопрос про веторы
|
|||
|---|---|---|---|
|
#18+
Вообщем есть у меня 3 класса, и общий предок графический объект. Классы: точка, круг, цилиндр. Написал во внешнем модуле описания классов и самого веткора: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 60 C:\Documents and Settings\alex\My Documents\c++\classes\main.cpp no matching function for call to `Shapes::add_shape(Point)' Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 20:43 |
|
||
|
Вопрос про веторы
|
|||
|---|---|---|---|
|
#18+
Чет... я забыл уже. Вроде как в C++ надо писать virtual в потомке. Или не надо. А хр.... его зн.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 20:52 |
|
||
|
Вопрос про веторы
|
|||
|---|---|---|---|
|
#18+
Zmiy Код: plaintext 1. 2. 3. 4. 5. Но при попытке создать ту же точку в программе и потом добавить ее в массив всех объектов выходит ошибка: 60 C:\Documents and Settings\alex\My Documents\c++\classes\main.cpp no matching function for call to `Shapes::add_shape(Point)' Код: plaintext 1. 2. 3. У тебя add_shape аргументом имеет указатель на GraphicObject. А ты пытаешься туда засунуть значение. Скомпилируется у тебя, если напишешь так : Код: plaintext 1. 2. 3. 4. 5. 6. Но вот будет ли это работать.... Память- то освобождать потом надо будет ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 20:59 |
|
||
|
Вопрос про веторы
|
|||
|---|---|---|---|
|
#18+
Ну по идее, если я память забиваю объектами то есть функция remove_all: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 21:19 |
|
||
|
Вопрос про веторы
|
|||
|---|---|---|---|
|
#18+
[quot Zmiy] Но как я понимаю, если в функции remove() прописано тока вывод строки "удалено", то память все-таки не освобождается. Как ее в коде самой emove_all освободить? Как-как - взять и освободить. Я ж не знаю, как ты ее выделял. То есть либо деструктором что ли каждый грохнуть, либо есть стандартная функция, чтоб весь вектор обнулить? Деструктор ничего не грохает. Обнулить вектор можно, но это не удалит объекты в нем. Вообще хранить что-то выделяемое динамически в std::vector сложновато - надо всегда удалять объекты руками. Обычно хранять объекты по значению либо хранять smart-pointers на объекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 01:08 |
|
||
|
Вопрос про веторы
|
|||
|---|---|---|---|
|
#18+
удалять нужно оператором delete, но правильно ли он заработает в этом случае - хз. ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 12:37 |
|
||
|
Вопрос про веторы
|
|||
|---|---|---|---|
|
#18+
спасибо, разобрался. Нужно было просто грохать сам вектор, а эелементы фиг с ним, если что поом можно деструкотором каждый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2006, 11:58 |
|
||
|
Вопрос про веторы
|
|||
|---|---|---|---|
|
#18+
Ага, разобрался Как получить утечки памяти :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2006, 14:26 |
|
||
|
Вопрос про веторы
|
|||
|---|---|---|---|
|
#18+
Обнуление вектора и удаление обьекта, представляющего вектор - это разные вещи ИМХО. Вам следует по смыслу определится, что вы собираетесь собсно делать. Обычно я, предпочитаю удерживать экзеппляр в памяти (в пуле обьектов) до тех пор, пока не заверит работу приложение. Как загонять обьекты в пул - отдельная тема форума. Утечки обычно показывает среда разработки после завершения работы приложения. Ловля этого зверя - занятие не для слабонервных, особенно если софт работает в мультипоточности. Поэтому здесь я поддержу точку зрения Мастер-Зива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2006, 15:20 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33589210&tid=2031813]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 490ms |

| 0 / 0 |
