Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
430 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,641
Записей в блоге: 14

Массив параметров в конструкторе

17.07.2018, 12:18. Показов 956. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код:
C++
1
2
3
4
5
6
7
8
9
10
class Unit {
    ...
};
template<unsigned int size> class MyClass {
    Unit units[size];
    MyClass() {}
    template<unsigned int new_size> MyClass(...) {
        ...
    }
};
Кто знает, как сделать, чтобы в этот конструктор можно было вводить любое количество параметров типа Unit, и они записывались в массив units?
Такое решение:
C++
1
2
3
template<unsigned int new_size> MyClass(array<Unit, new_size> ^new_units) {
    ...
}
- приводит к сплошным ошибкам.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.07.2018, 12:18
Ответы с готовыми решениями:

Массив параметров в конструкторе - попытка 2
Прошу модераторов не удалять эту тему, она является не дублем, а уточнением. Объявлен шаблонный класс: class Unit{ ... }; ...

Присваивание входных параметров в конструкторе
Добрый день. Недавно наткнулся на код такого типа #define MaxSize 100 class Test { private: int Size; public: ...

Ошибка при попытке инициализации входных параметров в конструкторе
Доброго времени. При попытке инициализировать поле State макроопределением компилятор выдаёт ошибку. При инициализации константой всё...

4
Заблокирован
17.07.2018, 13:46
initializer_list
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
17.07.2018, 13:53
MyClass(Unit (&&units)[size]) : units(std::forward<Unit[size]>(units)) {}
ну, наверное, как-то так.
0
Заблокирован
17.07.2018, 13:57
std::initializer_list
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
17.07.2018, 14:20
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Кто знает, как сделать, чтобы в этот конструктор можно было вводить любое количество параметров типа Unit, и они записывались в массив units?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template<int size>
struct Array
{
    template<typename...Args>
    Array(Args...args):data{args...}{}
    int data[size];
};
 
int main()
{
    Array<3> test{1,2,3};
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.07.2018, 14:20
Помогаю со студенческими работами здесь

Как вызвать конструктор с параметрами в конструкторе без параметров?
Как вызвать конструктор с параметрами в конструкторе без параметров? То есть что бы конструктор с параметрами выступал в роли основного. В...

Как избежать повтора параметров конструктора класса-родителя в конструкторе наследника?
С каждым новым наследуемом классом, число параметров конструктора увеличивается. class A { public: A(int a, float b, double c) ...

Динамический массив в Конструкторе Формы
Такс это в юните: #include &lt;vcl.h&gt; #pragma hdrstop #include &quot;Unit1.h&quot; #include &quot;MYDLL.cpp&quot; float **a; float *x; int...

Динамический массив: ошибка в конструкторе
Приветствую! Слушаю лекцию ТЕХНОПАРК, и там рассказывается про динамический массив с примером на C++ (есть 2 аналогичных видео: 1 вариант,...

Как записать char массив в конструкторе
Подскажите, как записать char масив в кострукторе #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; class RIELTER ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru