На этой странице вы найдете информацию о программировании, данная информация была взята с разных источников и автором. Поэтому мы не претендуем на авторство этого материала, а лишь предоставляем возможность ознакамливаться с ним.
Ошибки компиляции пропустим:пока все они не исправлены, программа не готова, и запустить ее нельзя. Здесь мы будем рассматривать только ошибки,… Первый вид ошибок, который всегда приходит в голову – это ошибки… Теоретически возможно написать программу без таких ошибок. Во многом язык Си++ помогает предотвратить ошибки во время… ...
Минимальной областью видимости имен является блок. Имена, определяемые в блоке, должны быть различны. При попытке объявить две переменные с одним и… Имена, объявленные в классе, видимы внутри этого класса, т.е. во всех его… Для имен, объявленных вне блоков, областью видимости является весь текст файла, следующий за объявлением.
...
Тем не менее, использование глобальных переменных может привести к ошибкам. В нашем случае с генератором при его использовании нужно твердо помнить,… При составлении программ самым лучшим решением будет то, которое не позволит… Изменим описание класса RandomGenerator:
class RandomGenerator{public: static void Init(unsigned long start);… ...
Объявление внешней переменной можно поместить в файл-заголовок. Тогда не нужно будет повторять объявление переменной с описателем extern в каждом… Модификацией определения глобальной переменной является добавление описателя… ...
Во-первых, определим класс RandomGenerator с двумя методами: Init, для инициализации генератора, и GetNumber — для получения следующего числа.
… Первый вариант состоит в создании объекта класса RandomGenerator в функции… Поскольку функция main завершает работу программы, все необходимые условия выполнены: генератор случайных чисел… ...
Иногда временное хранилище данных требуется на более короткое время, чем выполнение всей функции. Во- первых, поскольку в Си++ необязательно, чтобы… Если переменную, определенную внутри функции или блока, описать как… ...
Директива #error выдает сообщение и завершает компиляцию. Например, конструкция
#ifndef unix#error "Программу можно компилировать только для… выдаст сообщение и не даст откомпилировать исходный файл, если макроимя unix… Директива #line изменяет номер строки и имя файла, которые хранятся в предопределенных макроименах __LINE__ и… ...
Предполагается, что LEVEL – это макроимя, поэтому выражение в директивах #if и #elif можно вычислить во время обработки исходного текста… Итак, если LEVEL больше 3, то компилироваться будет текст1, если LEVEL больше… В каком-то смысле директива #if похожа на условный оператор if. Однако, в отличие от него, условие – это константа,… ...
определяет макроимя. Везде, где в исходном файле встречается это имя, оно будет заменено его определением. Например, текст:
#define NAME… после препроцессора будет заменен на
Connect("database"); По умолчанию имя определяется как пустая строка, т.е. после директивы
#define XYZ ...
Фактически оператор #include подставляет содержимое файла Book.h в текущий файл перед тем, как начать его компиляцию. Эта подстановка осуществляется… В такой же файл заголовков можно поместить прототипы функций и включать его в… Таким образом, текст программы на языке Си++ помещается в файлы двух типов – файлы заголовков и файлы программ. В… ...
Объявление функции состоит лишь из ее прототипа, т.е. имени, типа результата и списка аргументов. Объявление функции задает ее формат, но не… Определение функции – это определение того, как функция выполняется. Оно… Определение функции играет роль объявления ее имени, т.е. если в начале файла определена функция fact, в последующем… ...
Если мы рассмотрим этот процесс чуть более подробно, то выяснится, что обработка исходных файлов происходит в три этапа. Сначала файл обрабатывается… На третьем этапе компиляции к объектному файлу подсоединяются все функции, на… Системные функции и стандартные функции языка Си++ заранее откомпилированы и хранятся в виде библиотек. Библиотека –… ...
Гарантировано, что объект виртуального базового класса будет содержаться в объекте выведенного класса (см. рисунок 11.4) один раз. Платой за… Рис. 11.4. Структура объекта StudentLibrarian при виртуальном множественном…
...
В случае внутреннего наследования внешняя и защищенная части базового класса становятся внутренней частью производного класса. Внутренняя часть… Если перед именем базового класса поставить ключевое слово protected, то будет… Фактически, при защищенном и внутреннем наследовании производный класс исключает из своего интерфейса интерфейс… ...