Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/55: Рейтинг темы: голосов - 55, средняя оценка - 4.85
 Аватар для Warezovvv
9 / 9 / 3
Регистрация: 09.12.2012
Сообщений: 219

Non-const lvalue reference to type

06.06.2015, 13:37. Показов 10533. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Мне надо передать указатель на матрицу (Шахматная доска)
C++
1
Piece* board[8][8]
в функцию (Загрузить состояние доски из файла, т.е. придется менять объект)
C++
1
bool Load(Piece& board);
Ошибка
C++
1
non-const lvalue reference to type 'Piece' cannot bind to a value of unrelated type 'Piece *[8][8]'|
Я погуглил и не очень понял, говорят что в MSVC можно ?отключать? такое. Но у меня компилятор Clang, но могу поменять на GCC если это сильно зависит от компилятора.
Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.06.2015, 13:37
Ответы с готовыми решениями:

RVALUE Ссылка, error: cannot bind non-const lvalue reference of type 'String&' to an rvalue of type 'String'|
Код не компилируется ниже 17 стандарта с++ с ошибкой error: cannot bind non-const lvalue reference of type 'String&' to an rvalue of...

Странная ошибка invalid initialization of non-const reference of type 'std::vector<oneVec>::iterator&
Пишу я значит двухмерный вектор, решаю проверить наличие ошибок(я просто компилирую) и выдают такую замудрёную ошибку: 36:53: error:...

Ошибка: cannot bind non-const lvalue reference of type 'double&' to an rvalue of type 'double' - почему?
Всем привет! В программе вызываю функцию: UpdateEditControl(IDC_EDIT7, CalculateRecommended(resistor_lim, nominal, sizeNominal)); ...

4
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
06.06.2015, 13:42
Цитата Сообщение от Warezovvv Посмотреть сообщение
Я погуглил и не очень понял, говорят что в MSVC можно ?отключать? такое. Но у меня компилятор Clang, но могу поменять на GCC если это сильно зависит от компилятора.
Спасибо!
Ничего не надо отключать. Нужно делать правильно. У тебя типы не соответствуют.
Передавать указатель на массив
C++
1
bool Load(Peace (*board)[8][8]);
Или ссылку на массив
C++
1
bool Load(Peace (&board)[8][8]);
1
 Аватар для Warezovvv
9 / 9 / 3
Регистрация: 09.12.2012
Сообщений: 219
06.06.2015, 13:50  [ТС]
Спасибо. Но немного не понял. Почему мы в скобки заключаем и ?разыменовываем? ? Так же как сделать независимо от количества элементов?
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
06.06.2015, 13:58
Лучший ответ Сообщение было отмечено Warezovvv как решение

Решение

Цитата Сообщение от Warezovvv Посмотреть сообщение
Почему мы в скобки заключаем и ?разыменовываем? ?
Это не разыменование. Здесь звездочка - это определение типа указателя (значение звездочки в коде зависит от контекста применения, если мы определяем переменную, то звездочка перед ней обозначает тип указателя, а если работаем с уже определенной переменной (указателя), это это разыменование). А скобки нужны, чтобы определить, что это не просто указатель, а именно указатель на массив (более детальное объяснения я думаю пока что будет лишним, но если интересно, то вот).

Добавлено через 1 минуту
Цитата Сообщение от Warezovvv Посмотреть сообщение
Так же как сделать независимо от количества элементов?
Если на этапе компиляции, то шаблоном.
C++
1
2
template <size_t F, size_t S>
bool Load(Peace (&board)[F][S]);
1
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
06.06.2015, 14:02
C++
1
2
3
4
Piece* board[8][8]
bool Load(Piece* board[][8]);
...
Load(board);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.06.2015, 14:02
Помогаю со студенческими работами здесь

Ошибка: Binding 'const Ship' to reference of type 'Ship&' discard qualifiers. Не пойму, где теряется const
есть public метод класса с квалификатором const тип _ships - QMultiMap QMultiMap имеет унаследованные методы values(),...

Ошибка приведения типов: E2357 Reference initialized with 'bool', needs lvalue of type 'bool'
Подскажите решение проблемы, программа на rad studio2010, проблема в этой строке ((TScrollBox*)c)-&gt;OnMouseWheel(c,Shift, WheelDelta,...

Cannot convert ‘& a’ (type ‘A*’) to type ‘const QObject*’
Извиняюсь за глупый вопрос. Где я что делаю не так? Хочу вывести выхлоп дочернего процесса на stdin. shell.h #include...

Особенности хранения value type и reference type
Всем известно, что значимые типы хранятся в стеке(смутно представляю, что он из себя представляет, было бы неплохо узнать), а ссылочные в...

Const, pointers, reference
const int&amp; const ref1; const int &amp;ref1; int const &amp;ref1; Во всех случаях это константная ссылка или ссылка на константу(мне,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru