|
0 / 0 / 0
Регистрация: 28.10.2018
Сообщений: 14
|
|||||||||||
Про передачу массива в функцию как константу?24.11.2018, 16:13. Показов 1820. Ответов 6
Метки нет (Все метки)
Всем привет Не ругайте сильно начал изучать с++ по книге Р Лаффоре. Понятно, что уже многое могло устареть. Собственно вопрос.
пример из книги. Почему не работает? Ошибка следующая: Severity Code Description Project File Line Suppression State Error C2664 'void Part::setPart(char [],int,double)': cannot convert argument 1 from 'const char [6]' to 'char []' Project12 f:\c++\source\glava6\project12\project12 \source.cpp 29 Но если написать так то все ок:
0
|
|||||||||||
| 24.11.2018, 16:13 | |
|
Ответы с готовыми решениями:
6
Разработать функцию поэлементного умножения массива на константу
|
|
Модератор
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,246
|
||||||
| 24.11.2018, 16:33 | ||||||
|
Поелику, Вы хотите передавать константную строку, то будьте любезны писать:
1
|
||||||
|
98 / 64 / 36
Регистрация: 14.10.2018
Сообщений: 152
|
||||||
| 24.11.2018, 16:33 | ||||||
|
У меня все компилируется. Попробуйте так:
1
|
||||||
|
0 / 0 / 0
Регистрация: 28.10.2018
Сообщений: 14
|
|
| 24.11.2018, 17:51 [ТС] | |
|
Спасибо! За ответ. Мне просто интересно это ошибка в книге? или просто изменения правил языка? До главы с указателями еще не добрался, но вот читаю по порядку.
Сообщения компилятора в общем то было понятно. Part par1; char mas[]="model"; par1.setPart(mas, 20, 350); par1.display(); return 0; Просто интересно, что такая схема работает и он не ругается.
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|||
| 24.11.2018, 18:38 | |||
Сообщение было отмечено SergeySerd как решение
РешениеДобавлено через 3 минуты Здесь у нас создается массив на стеке (и он не константен), который инициализируется значением строкового литерала (который в свою очередь находится в статической памяти). А в первом варианте мы сразу получаем указатель на эту статическую память, и эта память для строковых литералов как правило защищена от записи. Поэтому передача этого указателя как указателя на неконстанту чревато серьезными проблемами, т.к. компилятор уже не сможет проконтролировать отсутствие записи по этому указателю. Ваш компилятор совершенно верно поступает, что запрещает такой код. Добавлено через 4 минуты SergeySerd, Да, и не ждите от Лафоре точности. Книга ширпотреб и на слуху только из-за понятного новичкам изложения (уж не знаю почему так). Но что касается качества информации в ней, то зачастую оно довольно низкое, неполное и вводящее в заблуждение. Примеры неудачные и противоречивые. Имейте это ввиду. По-хорошему, если С++ будет вашим языком для заработка, то лучше потом найти книгу получше.
1
|
|||
|
0 / 0 / 0
Регистрация: 28.10.2018
Сообщений: 14
|
|
| 24.11.2018, 18:54 [ТС] | |
|
Посоветуйте пожалуйста тогда что-то по-лучше. Если можно не шибко древнее.
С универа еще осталась книга старая Джесса Либерти с++ за 21 день
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|
| 24.11.2018, 19:59 | |
|
SergeySerd, Липпман (предпочтительнее) - "Язык программирования C++. Базовый курс", или Прата - "Язык программирования C++. Лекции и упражнения". Обе книги затрагивают современный C++.
1
|
|
| 24.11.2018, 19:59 | |
|
Помогаю со студенческими работами здесь
7
Передачу аргументов в функцию по константному указателю Как вычесть из значений массива константу? Как реализовать передачу массива из одного фрагмента в другой Как из всех элементов динамического массива вычесть константу? И вновь про передачу данных из одной формы в другую Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
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.
Задача: вывести данные из ТЧ нетипового документа. . .
|