![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 30.06.2010
Сообщений: 20
|
![]()
Здравствуйте!
У меня вопрос. Можно ли как-то инициализировать в конструкторе класса ссылку на vector, но не через аргумент конструктора. Код:
Извините за странный вопрос и заранее спасибо за помощь. Последний раз редактировалось Stilet; 10.02.2013 в 16:44. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
у вас ссылка, значит класс не имеет своего вектора, а применяет переданный в конструктор.
а вот если заменить на указатель, то можно организовать подобное, только нельзя последний терять(хотя можно и ссылку применить как указатель, ток не стоит) и не забыть удалить. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 30.06.2010
Сообщений: 20
|
![]()
А как же сделать через указатель? Ведь он собственно должен как то ссылаться на объект типа vector, а объекта не передается (как по сути и с ссылкой).
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
Поменять vector <int > &values на vector <int > *values.
Только я не понял, вы ходите, чтоб в конструкторе не было вектора но хотите добавлять данные в вектор? |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 30.06.2010
Сообщений: 20
|
![]()
Да, хочу не передавать ссылку на вектор через аргумент конструктора, но создавать объект вектора в инициализации конструктора.
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
Ну так и создавайте вектор, в чем проблема?
Сделайте, чтоб values было обычным вектором а не ссылкой. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 30.06.2010
Сообщений: 20
|
![]()
Да ну не задавал бы я такой вопрос, если бы не нужно было бы сделать вектор именно ссылкой или указателем. Именно ссылка или указатель на вектор должны быть потому, что функция класса имеет идентификатор const. Я не могу в ней менять значения полей класса. Понимаю, проблема дурацкая, но я подумал, может кто знает решение.
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
Сделайте две переменные - вектор и ссылку на вектор, вот и все, только не уверен, что ссылка поможет.
Если у вас в const функции надо менять член класса, значит вам скорее надо функцию переделать, чтоб не была const. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 30.06.2010
Сообщений: 20
|
![]()
Спасибо. Не додумался до такого хода. Все работает.
Код:
Последний раз редактировалось Stilet; 10.02.2013 в 16:46. |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
я бы убрал const...
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Возвращение результата через аргумент | NinjaNoob | Помощь студентам | 8 | 04.12.2012 11:04 |
static const vector инициализация | red6ds | Общие вопросы C/C++ | 2 | 06.10.2012 13:03 |
std::vector и его инициализация | coNsept | Общие вопросы C/C++ | 5 | 15.06.2012 13:40 |
STL: vector, инициализация | Сtrl | Общие вопросы C/C++ | 3 | 07.05.2011 19:41 |
Автоматическое преобразование на основе первого аргумента конструктора в вызов самого конструктора | jennya | Visual C++ | 8 | 03.10.2010 19:03 |