MaxLevs
@MaxLevs

Можно ли в C++ передавать массивы в функцию сразу при объявлении?

Есть пользовательский класс для массивов некоторых объектов. Например, пусть будут строки.
Хотелось бы иметь возможность объявлять их так:
Objarr var1({"Строка1", "Строка2", "Строка3"}, 3);

Как такого добиться и можно ли??

UPD1
Нужно написать учебную программу, и задать пару-тройку "вшитых" вариантов, помимо тех, которые будут создаваться по ходу работы, чтобы иметь какие-то данные сразу. Вот и хочу сделать что-то вроде:
Objarr var1({"Строка1", "Строка2", "Строка3"}, 3);
Objarr var2({"Строка1", "Строка2"}, 2);
Objarr var3({"Строка1", "Строка2", "Строка3", "Строка4", "Строка5"}, 5);

чтобы иметь возможность быстро добавлять/удалять "вшитые" варианты. Да и разве учебная программа - не хороший повод пощупать что-то новое?
  • Вопрос задан
  • 296 просмотров
Пригласить эксперта
Ответы на вопрос 2
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
Можно так:
#include <iostream>

void func(std::initializer_list<int> data)
{
	for(const auto& item : data) {
		std::cout << item << std::endl;
	}
}

int main() {
	func({1, 2, 3});
	std::cout << std::endl;
	func({1, 2, 3, 10, -1, 15});
	return 0;
}
Ответ написан
dio4
@dio4
team leader, system engineer, master of sports
используйте map и в конструкторе создайте объекты-отображения. Затем созданные объекты добавьте в массив. Затем такой массив будете использовать в классе, передавая его туда в конструктор.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы