Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> создание динамического массива объектов 
:(
    Опции темы
sysil
Дата 12.11.2007, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 27.10.2007

Репутация: нет
Всего: нет



Подскажите можно ли создать динамический массив объектов, которые содержат конструктор с параметрами. При создании объекта нужно передать параметры конструктора. Получается что при создании дин массива нужно передать дин массив параметров. Верно ли я мыслю? Если так то как ето сделать.
Спасибо.
Есть и деструктор с параметрами.
PM MAIL   Вверх
Fazil6
Дата 12.11.2007, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(sysil @  12.11.2007,  14:05 Найти цитируемый пост)
Подскажите можно ли создать динамический массив объектов, которые содержат конструктор с параметрами. При создании объекта нужно передать параметры конструктора. Получается что при создании дин массива нужно передать дин массив параметров. Верно ли я мыслю?

неверно.
для использования new[] нужен конструктор поумолчанию.

выход:
1. Добавить конструктор поумолчанию. Выделить память и потом заменить в нем объекты построенными конструктором с параметрами
либо
2. Сделать все параметры конструктора параметрами поумолчанию
Код

struct A
{
A(int x = 0);
};


а лучше dcuj std::vector , но ему по любому также нужны конструктор поумолчанию и копии

Добавлено через 18 секунд
Цитата(sysil @  12.11.2007,  14:05 Найти цитируемый пост)
Есть и деструктор с параметрами.

чиво???
PM MAIL   Вверх
Lazin
Дата 12.11.2007, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Используй массив указателей, или boost::ptr_vector, он специально для этого предназначен
PM MAIL Skype GTalk   Вверх
EnergoHokum
Дата 12.11.2007, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 600
Регистрация: 10.11.2006
Где: Россия, Ставропол ь

Репутация: нет
Всего: 6



GCC слопал такой вариант:
Код

#include <stdio.h>

struct MyObject
{
    int i; long l;
    MyObject() { ; }
    MyObject(int ii,long ll) { i=ii; l=ll; }
};

int main(int argc,char** argv)
{
    MyObject* pmo=new MyObject[50];
    for(int i=0;i < 50;i++)
    {
        pmo[i].i=i; pmo[i].l=i;
    }
    delete[] pmo;
    return 0;
}

(Ну, это совсем в лоб получилось...)

Это сообщение отредактировал(а) EnergoHokum - 12.11.2007, 14:42
PM MAIL ICQ   Вверх
AntonSaburov
Дата 12.11.2007, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Думаю, что лучше использовать библиотеку STL - списки, коллекции и прочая. Имнно для такого и предназначено.
PM MAIL WWW ICQ   Вверх
UnrealMan
Дата 12.11.2007, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(Fazil6 @  12.11.2007,  14:29 Найти цитируемый пост)
std::vector , но ему по любому также нужны конструктор поумолчанию 

Разве?
PM MAIL   Вверх
Fazil6
Дата 12.11.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(UnrealMan @  12.11.2007,  18:41 Найти цитируемый пост)
Разве?

ну хорошо, не всегда, но может понадобиться
PM MAIL   Вверх
UnrealMan
Дата 12.11.2007, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Даже resize без него можно вызвать.
PM MAIL   Вверх
Fazil6
Дата 12.11.2007, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(UnrealMan @  12.11.2007,  19:04 Найти цитируемый пост)
Даже resize без него можно вызвать.

уговорил.
vector может обходиться без конструктора поумолчению 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0880 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.