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

Инициализация массива объектов через конструктор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить список из одинаковых элементов двух других списков http://www.cyberforum.ru/cpp-beginners/thread1175675.html
нужна ваша помощь) Даны 2 двузсвязных списка s1 и s2, создать новый список s3, элементами которого будут элементы, входящие одновременно в 2 эти списка.
C++ Команда всем stream-ам Допустим у меня есть такое : std::ofstream foutOne(fileOne); std::ofstream foutTwo(fileTwo); // и std::cout как указать всем ,что на пример precision(5); причем одним... http://www.cyberforum.ru/cpp-beginners/thread1175668.html
Заменить все члены последовательности, большие заданного числа Z, этим числом; подсчитать количество замен C++
Дана последовательность действительных чисел а1, а2,..., an. Заменить все ее члены, большие данного Z, этим числом. Подсчитать количество замен. Это все, что я могу:( #include "stdafx.h" #include...
написать программу решения уравнения ax^3+bx=0 для произвольных a и b C++
написать программу решения уравнения ax^3+bx=0 для произвольных a и b.
C++ Строки / Работа со строками [C++] http://www.cyberforum.ru/cpp-beginners/thread1175653.html
3) Сложные действия со строками Дано осмысленное текстовое сообщение (т.е. алфавитно-цифровая информация, разделен ная пробелами и знаками препинания, в конце которого ставится точка): Подсчитать...
C++ Курсовая: "Многопоточный запуск VB скриптов из приложения C++" Добрый день форумчане! Подскажите пожалуйста с чего начать и общую архитектуру приложения по теме курсовой: "Многопоточный запуск VB скриптов из приложения C++"? Спасибо подробнее

Показать сообщение отдельно
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
15.05.2014, 13:05
Игорюня, просто создается локальный объект класса и присваивается элементу массива. Только параметры инициализации передаются сразу конструктору класса вместо метода инициализации.

Добавлено через 19 минут
Игорюня, Внесу уточнение: при создании массива объектов происходит выделение памяти и инициализация конструктором по умолчанию и, в случае, если необходима инициализировать объекты другими параметрами лучше всего использовать метод инициализации как вы делали в первом сообщении
C++
1
array[i].init(new_params)
Так как размер объекта определяется размером его полей и может быть довольно большим, или же размер массива достаточно большим, что-бы инициализация
C++
1
array[i] = some(new_params)
сказалась на производительности из-за необходимости выделения памяти под новый объект и удаления выделенной памяти старых элементов массива.

Что-бы убрать инициализацию с помощью конструктора по-умолчанию при создании массива достаточно завести указатель на массив и выделять память динамически
C++
1
2
3
int **array = new (int*)[size]
// for i=0..size-1
array[i] = new some(new_params)
Будет больше расходов на управление выделяемой памятью и передачей размера массива, зато не будет накладных расходов на перевыделение памяти.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru