![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
![]()
Добрый день,
с c# можно написать вот так, например: Код:
Код:
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Можно, но только в стандарте C++0x. Для этого в качестве параметра нужно указывать std::initializer_list<T>.
Код:
|
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
![]()
Вот примерный код того, что у меня сейчас есть:
Код:
|
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Совершенно верно, я пропустил квадратные скобки.
Боюсь, без использования доп. массива никак это не сделать. Так как даже стандартные контейнеры для инициализации используют их (но в новом стандарте реализована инициализация также и через initializer_list). Код:
Код:
Последний раз редактировалось netrino; 18.05.2011 в 21:04. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
![]()
Да, видел такую инициализацию вектора.
В общем, я как раз старался минимизировать количество кода в пользовательском классе. Забил на инициализацию константным массивом, решил сделать так: Код:
|
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Кстати, вызвать конструктор членов класса можно так:
Код:
Если Вы хотите конструировать keys в своём конструкторе (без получения данных извне) и для Вас не столь важна его инициализация конкретно массивом, то можно перегрузить для ProxyKeys и Values оператор << и производить инициализацию так Код:
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
![]()
Спасибо за замечание
![]() А можно подробнее про накладные расходы? Какие именно? Ну а что касается неочевидного решения, то это не есть какая-то трагедия. Это же всего лишь диплом. В любом случае, я оставил для этого шаблона и другие способы инициализации, просто со строкой наиболее короткий, пусть и неочевидный. С перегрузкой оператора << хорошая идея, даже в голову не приходило, обязательно предусмотрю такой вариант. |
![]() |
![]() |
![]() |
#9 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Я имел ввиду накладные расходы в виде выделения и конвертирования числа из строчного типа в численный, Вы ведь собираетесь как-то работать с переданными числами. Безусловно, это не столь трагично, просто замечание, так как мне не нравится такой способ, но дело Ваше
![]() |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
![]()
А, ну если это, тогда ясно. Мне, конечно, тоже это не греет душу, но экземляр класса будет единожды создаваться, поэтому это не трагедия
![]() Спасибо за помощь. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
инициализация массива | parazzzitka93 | Общие вопросы C/C++ | 11 | 02.04.2011 21:01 |
Инициализация | Aleksey1989 | Общие вопросы Delphi | 10 | 11.09.2010 21:50 |
Ошибка инициализация | Krumyura | Общие вопросы C/C++ | 2 | 22.03.2010 14:08 |
Инициализация | Krumyura | Общие вопросы C/C++ | 5 | 20.03.2010 23:37 |
Инициализация DirectX | Pedro | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 30.09.2009 21:06 |