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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Андрей Кузалекс
0 / 0 / 0
Регистрация: 21.04.2012
Сообщений: 6
#1

Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++" - C++

21.04.2012, 18:41. Просмотров 977. Ответов 9
Метки нет (Все метки)

В книге С. Бобровского "Самоучитель программирования на языке С++", написание кодов небольших программ и объяснения для чего все написано.
Во втором примере создание программы "Игра в кости" создается файл Text.h который подключается ко листу программы и содержит в себе константы текстовых переменных типа AnsiString:

const AnsiString LAST_DICE_STR = "Последний бросок был ";


Компилятор C++Builder 6. выдает ошибки.

[C++ Error] Text.h(4): E2304 Constant variable 'AnsiString' must be initialized
1) вопрос. Константная переменная 'AnsiString' должна быть инициализирована. Что значит инициализирована? Заглавными буквами?

[C++ Error] Text.h(4): E2141 Declaration syntax error
2) вопрос. Ошибочное расположение синтаксиса. Что это?

[C++ Error] Text.h(4): E2344 Earlier declaration of 'AnsiString'
3) Вопрос. Раннее объявлена 'AnsiString'. Где её объявлять?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2012, 18:41     Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++"
Посмотрите здесь:

Работа с массивами по Крупник "Самоучитель С++" C++
Ищу ответы на вопросы из задачника Златопольского Д. М. "Сборник задач по программированию " C++
вопросы связанные с темой "читай мат.часть" C++
C++ В чем разница между "Порядок выполнения программ на языке C" и "Структура программы на языке C"
C++ Ошибка в книге Скиены "Олимпиадные задачи по програмированию"?!
C++ Проблемы с переводом строки в число (по книге Лафоре "ООП в С ++ ")
C++ Код, приведеном в книге "С++ за 21 дней. Либерти Джесс" не работает
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
21.04.2012, 18:44     Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++" #2
давай весь код
Nick Alte
Эксперт С++
1605 / 997 / 118
Регистрация: 27.09.2009
Сообщений: 1,923
Завершенные тесты: 1
21.04.2012, 19:29     Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++" #3
1) Тип AnsiString компилятору неизвестен, поэтому он считает это слово объявлением константы с типом по умолчанию (это int). Инициализирована - значит, ей должно быть присвоено начальное значение. При чём тут заглавные буквы?!
2) Сообщение значит "Ошибка синтаксиса объявления". В данном случае - объявления переменной. Значит, что компилятор из-за неизвестного типа не смог правильно воспринять смысл данной строки.
3) Повторное объявление переменной с одним и тем же именем запрещено. Поскольку компилятор не знает, что AnsiString - тип, он думает, что это имя переменной.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
21.04.2012, 20:57     Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++" #4
C++
1
#include <system.hpp>
Вроде надо
Андрей Кузалекс
0 / 0 / 0
Регистрация: 21.04.2012
Сообщений: 6
21.04.2012, 21:08  [ТС]     Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++" #5
Цитата Сообщение от Nick Alte Посмотреть сообщение
1) Тип AnsiString компилятору неизвестен, поэтому он считает это слово объявлением константы с типом по умолчанию (это int). Инициализирована - значит, ей должно быть присвоено начальное значение. При чём тут заглавные буквы?!
2) Сообщение значит "Ошибка синтаксиса объявления". В данном случае - объявления переменной. Значит, что компилятор из-за неизвестного типа не смог правильно воспринять смысл данной строки.
3) Повторное объявление переменной с одним и тем же именем запрещено. Поскольку компилятор не знает, что AnsiString - тип, он думает, что это имя переменной.
Спасибо за довольно таки полный ответ! Заглавная и начальная буква это синоним в Инглиш. а оказалось начальное значальное. Спасибо!
А разве в библиотеке языка Strig или AnsiString не являются строковыми переменными по умолчанию. или я не правильно понял учебник после объявления константы указал её тип AnsiSring/

Какой же тип указать для строковой константы? Подскажите...
Nick Alte
Эксперт С++
1605 / 997 / 118
Регистрация: 27.09.2009
Сообщений: 1,923
Завершенные тесты: 1
22.04.2012, 09:48     Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++" #6
AnsiString - специфический для Borland C++ Builder тип. Для его использования надо подключать <vcl.h>
Андрей Кузалекс
0 / 0 / 0
Регистрация: 21.04.2012
Сообщений: 6
25.04.2012, 14:47  [ТС]     Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++" #7
Снова проблема с моим пониманием учебника!
После того как я сделал Text.h с текст переменными
Автор пишет: итоговую строку можно записать в свойстве Caption объекта LastDice, который сразу покажет своё содержимое в соответствующем поле окна. Это доступно через указатель ->.
B приводится запись:

void TForm1 :: ShowInfo()
{
LastDice -> Caption = LAST_DICE_STR
+ IntToStr(Referee.Dice.LastValue);
}
Но компилятор Borland C++Bulder6. - показывает:
[C++ Error] Dice.cpp(35): E2247 'TControl::Caption' is not accessible
То есть, что Caption не доступный?
А как его сделать доступным? Что нужно подключить или записать по другому?

Добавлено через 2 минуты
Цитата Сообщение от Nick Alte Посмотреть сообщение
AnsiString - специфический для Borland C++ Builder тип. Для его использования надо подключать <vcl.h>
А где взять весь список всего что можно подключать в С++, с описанием? Подскажите?
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
25.04.2012, 17:17     Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++" #8
Цитата Сообщение от Андрей Кузалекс Посмотреть сообщение
Снова проблема с моим пониманием учебника!
После того как я сделал Text.h с текст переменными
Автор пишет: итоговую строку можно записать в свойстве Caption объекта LastDice, который сразу покажет своё содержимое в соответствующем поле окна. Это доступно через указатель ->.
B приводится запись:

void TForm1 :: ShowInfo()
{
LastDice -> Caption = LAST_DICE_STR
+ IntToStr(Referee.Dice.LastValue);
}
Но компилятор Borland C++Bulder6. - показывает:
[C++ Error] Dice.cpp(35): E2247 'TControl::Caption' is not accessible
То есть, что Caption не доступный?
А как его сделать доступным? Что нужно подключить или записать по другому?
В каком юните описан класс LastDice?
Nick Alte
Эксперт С++
1605 / 997 / 118
Регистрация: 27.09.2009
Сообщений: 1,923
Завершенные тесты: 1
25.04.2012, 18:49     Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++" #9
Цитата Сообщение от Nekto Посмотреть сообщение
В каком юните описан класс LastDice?
LastDice здесь не класс, а указатель на объект класса TControl. Ошибка заключается в том, что свойство Caption у объекта TControl хоть и существует, но недоступно для доступа извне (расположено в секции private или protected). Причина возникновения этой ошибки - неверный дизайн программы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2012, 23:43     Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++"
Еще ссылки по теме:

C++ Версия CodeBlocks к книге Стефана Р.Дэфиса "C++ для Чайников"
C++ Обучение по книге Страуструпа "принципы и практика C++". Не выводится "Hello, World"
Программа "Комплексные числа" на языке программирования С++ C++
Разобраться в примерх к книге Лафоре "Обьектно-ориентированое программирование в С++" C++
C++ Стоит ли изучать C++ по книге "C++ за 21 день"?

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

Или воспользуйтесь поиском по форуму:
Андрей Кузалекс
0 / 0 / 0
Регистрация: 21.04.2012
Сообщений: 6
03.05.2012, 23:43  [ТС]     Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++" #10
Если кто - то в учебных целях разбирал когда - то этот учебник, и в конце концов коды программ заработали. Отзовитесь. Поделитесь своими изысканиями или мнениями!
Yandex
Объявления
03.05.2012, 23:43     Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++"
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru