Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
andrei4_2
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 3
#1

Создание массива экземпляров класса с не стандарным конструктором - C++

17.08.2016, 12:25. Просмотров 156. Ответов 8
Метки нет (Все метки)

Здравствуйте. Подскажите пожалуйста. Есть у меня некий класс Аaa. У него два конструктора - простой и с передаваемым параметром.
C++
1
2
3
4
5
6
7
class Aaa
{
public:
    Aaa();
    Aaa(unsigned char *);
    ...
    }
Вопрос - как мне создать динамический массив таких классов, используя второй конструктор?
Такой вариант не работает..
C++
1
2
unsigned char * с;
Aaa *T = new Aaa(с)[10];
А в этом случае сначала вызывается простой конструктор, а только потом второй. Это дает неприятную задержку по времени..
C++
1
2
3
4
5
    
unsigned char * с;
Aaa *T = new Aaa [10];
for (int i = 0; i < 10; i++)
    T[i] = Aaa (с);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2016, 12:25     Создание массива экземпляров класса с не стандарным конструктором
Посмотрите здесь:

Создание массива класса, с установленным конструктором - C++
Не могу разобраться, создаю ссылку на класс в h файле, далее в cpp инициализирую, *.h FILE* file. *.cpp, вот тут мне нужен...

Создание класса с определенным конструктором - C++
Добрый день! Буду благодарен если поможете создать класс VectorEntry который будет соответствовать данному коду: VectorEntry...

Пример создания массива экземпляров другого класса - C++
Покажите как это делать, пожалуйста. И этот массив тоже должен быть в классе.

Реализовать создание и заполнение одним числом двумерного массива конструктором с тремя параметрами - C++
Добрый день. Одно из заданий лабораторной работы : &quot;Реализовать создание и заполнение одним числом двумерного массива конструктором...

Не создается указатель из-за базового класса с конструктором - C++
class Cbase { public: virtual void Start( ); int iGlobal; Cbase( int num ) { iGlobal = num ;

Член класса, создаваемый конструктором с параметром - C++
class A { public: class B { ... B(A *param); // Как открыть этот конструктор классу A, но закрыть его ото всех...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ferrari F1
=^_^=
553 / 440 / 93
Регистрация: 27.01.2015
Сообщений: 2,553
Записей в блоге: 1
Завершенные тесты: 1
17.08.2016, 12:30     Создание массива экземпляров класса с не стандарным конструктором #2
Компилятора пад рукой нет но мб так?
C++
1
Aaa *T = new Aaa [10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
gru74ik
Модератор
Эксперт CЭксперт С++
4106 / 1751 / 197
Регистрация: 20.02.2013
Сообщений: 4,856
Записей в блоге: 21
17.08.2016, 12:34     Создание массива экземпляров класса с не стандарным конструктором #3
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
Компилятора пад рукой нет
Он всегда под рукой (раз, два) если есть инет.
Ferrari F1
=^_^=
553 / 440 / 93
Регистрация: 27.01.2015
Сообщений: 2,553
Записей в блоге: 1
Завершенные тесты: 1
17.08.2016, 12:35     Создание массива экземпляров класса с не стандарным конструктором #4
Только конструктор должен принимать целый тип а не указатель

Добавлено через 36 секунд
gru74ik, я с планшета , ниудобна ))
andrei4_2
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 3
17.08.2016, 12:46  [ТС]     Создание массива экземпляров класса с не стандарным конструктором #5
Спасибо!
C++
1
Aaa *T = new Aaa [10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Такой вариант работает и мне в целом сойдет. Но просто ради интереса, а если вместо 10 будет n?
Ferrari F1
=^_^=
553 / 440 / 93
Регистрация: 27.01.2015
Сообщений: 2,553
Записей в блоге: 1
Завершенные тесты: 1
17.08.2016, 12:56     Создание массива экземпляров класса с не стандарным конструктором #6
andrei4_2, боюсь, что простого решения не найти, сложное - задействовать в классе аллокатор, а может получится перегрузить оператор нью, правда я ни разу этого не делал
avgoor
884 / 519 / 112
Регистрация: 05.12.2015
Сообщений: 1,464
17.08.2016, 13:06     Создание массива экземпляров класса с не стандарным конструктором #7
Цитата Сообщение от andrei4_2 Посмотреть сообщение
а если вместо 10 будет n?
vector + reserve() + emplace_back()
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
17.08.2016, 13:13     Создание массива экземпляров класса с не стандарным конструктором #8
Цитата Сообщение от andrei4_2 Посмотреть сообщение
Но просто ради интереса, а если вместо 10 будет n?
Можно вручную разнести фазы выделения памяти и нициализации под любой необходимый вариант. Ключевое слово - placement new.
Но это все крайности. Для типовых задач в С++ существует std::vector и другие контейнеры.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2016, 13:18     Создание массива экземпляров класса с не стандарным конструктором
Еще ссылки по теме:

Ошибка инициализации объекта, конструктором класса - C++
Добрый день. Написал программу. Создание класса (упражнение из книги Дейтеля) &quot;Создайте класс с именем Account, которым мог бы...

Массив экземпляров класса - C++
Доброго времени суток уважаемые форумчане. Возник вопрос: как заполнять массив экземплярами класса для CELL (дабы потом иметь возможность...

Задание начальных значений объекта класса конструктором - C++
здравствуйте, форумчане. подскажите, пожалуйта, можно ли реализовать следующее: нужно создать конструктор, способный использовать...

Указатель на массив экземпляров класса - C++
Пытаюсь разобраться с указателями, но видимо что-то совсем плохо понимаю: class bull {int x;}; bull n; bull *pN; pN=&amp;n; //...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
andrei4_2
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 3
17.08.2016, 13:18  [ТС]     Создание массива экземпляров класса с не стандарным конструктором #9
Ок. Всем спасибо за ответы.
Yandex
Объявления
17.08.2016, 13:18     Создание массива экземпляров класса с не стандарным конструктором
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru