Программирование >>  Инициализация объектов класса, структура 

1 ... 3 4 5 [ 6 ] 7 8 9 ... 395


int main( { ошибка - пропущена )

readIn(): ошибка - недопустима символ : sort (); compact(); print();

return 0 ошибка - пропущен символ ;

зрения языка С++, ошибки. Например:

ошибки типизации. С каждой переменной и константой в С++ сопоставлен некоторый тип. Например, число 10 - целого типа. Строка hello , заключенная в двойные кавычки, имеет символьн1й тин. Если функция ожидает получить в качестве параметра целое значение, а получает символьную строку, компилятор рассматривает это как ошибку типизации.

Сообщение об ошибке содержит номер строки и краткое описание. Полезно просматривать список ошибок, начиная с первой, потому что одна-единственная ошибка может вызвать цепную реакцию, появление наведенных ошибок. Исправление этой единственной ошибки приведет и к исчезновению остальных. После исправления синтаксических ошибок программу нужно перекомпилировать.

После проверки на правильность компилятор переводит исходный текст в объектный код, который может быть понят и исполнен компьютером. Эту фазу работы компилятора называют генерацией кода.

В результате успешной компиляции образуется выполняемый файл. Если запустить выполняемый файл, полученный в результате компиляции нашей программы, на

readIn()

sort()

compact ()

терминале появится следующий текст:

print()

В С++ набор основных типов данных - это целый и вещественный числовые типы, символьный тип и логический, или булевский. Каждый тип обозначается своим ключевым словом. Любой объект программы ассоциируется с некоторым типом.

int age = 10; double price = 19.99; char delimiter = ;

Например:

bool found = false;

смысловые ошибки, однако он может найти формальные ошибки в тексте программы. Существует два типа формальных ошибок:

синтаксические ошибки. Программист может допустить грамматические , с точки



заголовочн файл с определением типа string #include <string>

string current chapter = Начинаем ;

заголовочн файл с определением типа vector #include <vector>

типы, как строка, комплексное число, вектор, список. Примеры:

vector<string> chapter titles(20);

Здесь current chapter - объект типа string, инициализированный константой Начинаем . Переменная chapter titles - вектор из 20 элементов строкового типа. Несколько необычный синтаксис выражения

vector<string>

сообщает компилятору о необходимости создать вектор, содержащий объекты типа string. Для того чтобы определить вектор из 20 целых значений, необходимо написать:

vector<int> ivec(20);

Никакой язык, никакие стандартные библиотеки не способны обеспечить нас всеми типами данных, которые могут потребоваться. Взамен современные языки программирования предоставляют механизм создания новых типов данных. В С++ для этого служит механизм классов. Все расширенные типы данных из стандартной библиотеки С++, такие как строка, комплексное число, вектор, список, являются классами, написанными на С++. Классами являются и объекты из библиотеки ввода/вывода.

Механизм классов - одна из самых главных особенностей языка С++, и в главе 2 мы рассмотрим его очень подробно.

1.2.1. Порядок выполнения инструкций

По умолчанию инструкции программы выполняются одна за другой, последовательно. В программе

Здесь определены четыре объекта: age, price, delimiter, found, имеющие соответственно типы целый, вещественный с двойной точностью, символьный и логический. Каждый объект инициализирован константой - целым числом 10, вещественным числом 19.99, символом пробела и логическим значением false.

Между основными типами данных может осуществляться неявное преобразование типов. Если переменной age, имеющей тип int, присвоить константу типа double, например:

age = 33.333;

то значением переменной age станет целое число 33. (Стандартные преобразования типов, а также общие проблема: преобразования типов рассматриваются в разделе 4.14.)

Стандартная библиотека С++ расширяет базовый набор типов, добавляя к ним такие



int main()

readIn(); sort();

compact(); print();

return 0;

первой будет выполнена инструкция readIn() , за ней sort() , compact() и наконец print() .

Однако представим себе ситуацию, когда количество продаж невелико: оно равно 1 или даже 0. Вряд ли стоит вызывать функции sort() и compact() для такого случая. Но вывести результат все-таки нужно, поэтому функцию print() следует вызывать в любом случае. Для этого случая мы можем использовать условную инструкцию if. Нам придется переписать функцию readIn() так, чтобы она возвращала количество прочитанных

readIn() возвращает кочество прочитаннхх записей возвращаемое значение имеет тип int

int readIn() { ... } ...

int main() {

int count = readIn();

ес количество записей больше 1, то вызвать sort() и compact()

if ( count > 1 ) {

sort();

compact();

if ( count == 0 )

cout << Продаж не 61ло\п ;

else

print(); return 0; записей:

Первая инструкция if обеспечивает условное выполнение блока программы: функции sort() и compact() вызываются только в том случае, если count больше 1. Согласно второй инструкции if на терминал выводится сообщение Продаж не было , если условие истинно, т.е. значение count равно 0. Если же это условие ложно, производится вызов функции print(). (Детальное описание инструкции if приводится в разделе 5.3.)

Другим распространенным способом непоследовательного выполнения программы является итерация, или инструкция цикла. Такая инструкция предписывает повторять



1 ... 3 4 5 [ 6 ] 7 8 9 ... 395

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика