|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.02.2013, 04:30 | #1 |
Пользователь
Регистрация: 30.06.2010
Сообщений: 20
|
Инициализация ссылки на vector не через аргумент конструктора.
Здравствуйте!
У меня вопрос. Можно ли как-то инициализировать в конструкторе класса ссылку на vector, но не через аргумент конструктора. Код:
Извините за странный вопрос и заранее спасибо за помощь. Последний раз редактировалось Stilet; 10.02.2013 в 16:44. |
09.02.2013, 05:13 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
у вас ссылка, значит класс не имеет своего вектора, а применяет переданный в конструктор.
а вот если заменить на указатель, то можно организовать подобное, только нельзя последний терять(хотя можно и ссылку применить как указатель, ток не стоит) и не забыть удалить. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
09.02.2013, 14:51 | #3 |
Пользователь
Регистрация: 30.06.2010
Сообщений: 20
|
А как же сделать через указатель? Ведь он собственно должен как то ссылаться на объект типа vector, а объекта не передается (как по сути и с ссылкой).
|
09.02.2013, 16:58 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Поменять vector <int > &values на vector <int > *values.
Только я не понял, вы ходите, чтоб в конструкторе не было вектора но хотите добавлять данные в вектор? |
10.02.2013, 12:15 | #5 |
Пользователь
Регистрация: 30.06.2010
Сообщений: 20
|
Да, хочу не передавать ссылку на вектор через аргумент конструктора, но создавать объект вектора в инициализации конструктора.
|
10.02.2013, 12:48 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Ну так и создавайте вектор, в чем проблема?
Сделайте, чтоб values было обычным вектором а не ссылкой. |
10.02.2013, 13:42 | #7 |
Пользователь
Регистрация: 30.06.2010
Сообщений: 20
|
Да ну не задавал бы я такой вопрос, если бы не нужно было бы сделать вектор именно ссылкой или указателем. Именно ссылка или указатель на вектор должны быть потому, что функция класса имеет идентификатор const. Я не могу в ней менять значения полей класса. Понимаю, проблема дурацкая, но я подумал, может кто знает решение.
|
10.02.2013, 14:22 | #8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Сделайте две переменные - вектор и ссылку на вектор, вот и все, только не уверен, что ссылка поможет.
Если у вас в const функции надо менять член класса, значит вам скорее надо функцию переделать, чтоб не была const. |
10.02.2013, 15:26 | #9 |
Пользователь
Регистрация: 30.06.2010
Сообщений: 20
|
Спасибо. Не додумался до такого хода. Все работает.
Код:
Последний раз редактировалось Stilet; 10.02.2013 в 16:46. |
10.02.2013, 16:28 | #10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
я бы убрал 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 |