DVD |
Отправлено: 11.04.2004, 08:51 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 33
|
Вопрос такой. Динамически переменные можно создавать двумя способами.
double *a=new double
Такую можно удалить командой delete a
А, если создавать командой
double a=*new double
Как такую удалить? delete a не работает.
Просто я хочу динамически создать класс, но чтобы обращаться к его свойствам не через ->, а через точку. Класс создается, но как его удалить.
Еще вопрос.
Есть класс Planet
Есть класс Space, в которм есть свойство n — количество этих Planet. Мне надо, чтобы в зависимости от выбора пользователя создавался массив из n Planet. Я могу пользователя ограничить каким-то числом, но мне интересно, как внутри класса создавать массив из другого класса, произвольного размера и, чтобы к этому классу можно было обращаться. Если в конструкторе Space создать динамический массив из Planet, то к ним потом нет доступа.
|
|
olegenty |
Отправлено: 12.04.2004, 06:47 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Найди книжку Б. Страуструпа и на досуге её перечти вкрадчиво.
Р.S. double a = * new double — интересно, и нафига так изгаляться.
динамический массив организуй, пользуясь либо
vector , либо DinamicArray, либо наследником TList
|
|
DVD |
Отправлено: 18.04.2004, 07:20 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 33
|
QUOTE | Р.S. double a = * new double — интересно, и нафига так изгаляться. |
Я же говорю, чтобы не извращаться -> а через точку. |
|
Asher |
Отправлено: 18.04.2004, 09:49 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Если твой клас неотнаследован от TObject? то ты можешь не создавать его через new. Просто создай экземпляр — и пользуйся своей точкой.
Время жизни будет в пределах области видимости.
Помещать можеш в вектор std::vector vctPlanets.
Только если у тебя твои Planet переменной длины — то куча граблей твои. Или у Planet наследники есть в этом-же векторе.
В принципе можешь в вектор класть указатели на Planet , то там тогда опять -> появится.
Чем она тебе не угодила?
|
|
olegenty |
Отправлено: 18.04.2004, 15:15 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
после перехода с паскаля на C++, я уже почти забыл про точки...
класс — смарт-указатель реализуй как template, и пользуйся. если уж ну очень стебает "->" ставить...
|
|