Форум программистов, компьютерный форум CyberForum.ru

Передача по константной ссылке - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
linq
1 / 1 / 0
Регистрация: 05.11.2012
Сообщений: 26
30.11.2012, 23:05     Передача по константной ссылке #1
C++
1
2
void print(const std::string strs[], const char c);
void print(const std::vector<std::string>& vstrs, const char c);
Нужно организовать такую передачу. с вектором все нормально, а с массивом strs не получается. Можно ли вообще организовать ссылку на массив?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2012, 23:05     Передача по константной ссылке
Посмотрите здесь:

Передача AnsiString по ссылке C++ Builder
C++ Передача по ссылке
Передача структуры по ссылке C++
C++ Передача значения по ссылке
C++ Передача по ссылке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
30.11.2012, 23:14     Передача по константной ссылке #2
через указатель не подойдет?
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
30.11.2012, 23:35     Передача по константной ссылке #3
Цитата Сообщение от linq Посмотреть сообщение
с массивом strs не получается
Не получается что? Первый вариант абсолютно правильный за исключением того, что вы не передаёте размер массива.
C++
1
void print(const std::string strs[], size_t n, const char c);
Цитата Сообщение от linq Посмотреть сообщение
Можно ли вообще организовать ссылку на массив?
Только, если массив статический
C++
1
2
template <size_t N>
void print(const std::string (&strs)[N], const char c);
linq
1 / 1 / 0
Регистрация: 05.11.2012
Сообщений: 26
01.12.2012, 13:30  [ТС]     Передача по константной ссылке #4
Цитата Сообщение от rangerx Посмотреть сообщение
Только, если массив статический
А на динамический вообще никак?
Вообще, задача стоит такая: выводить элементы массива без предварительного копирования в другой массив
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
01.12.2012, 14:12     Передача по константной ссылке #5
Цитата Сообщение от linq Посмотреть сообщение
А на динамический вообще никак?
В Си++ нет типа "динамический массив". Есть только тип "указатель на один или более последовательно расположенных элементов типа T" и обещание программиста "мамой клянусь, за первым элементом есть ещё N – 1 штука".
Можете объединить указатель на начало массива и его длину в структурку, перегрузить ей операторы и передавать уже ссылку на эту структуру, но суть от этого не поменяется.
Yandex
Объявления
01.12.2012, 14:12     Передача по константной ссылке
Ответ Создать тему
Опции темы

Текущее время: 13:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru