Программирование >>  Процедурные приложения 

1 ... 17 18 19 [ 20 ] 21 22 23 ... 150


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

Производные классы

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

Полиморфизм и виртуальные функции

Чтобы понять смысл термина полиморфизм, рассмотрим древовидную иерархию родительского класса и порожденных от него подклассов. Каждый подкласс в этой структуре может получать сообщения с одинаковым именем. Когда объект какого-либо подкласса принимает такое сообщение, он на основании типа и количества переданных параметров определяет, к какому классу относится данное сообщение, и предпринимает соответствующие действия. Если сообщения сразу нескольких классов в иерархии имеют одинаковый формат, считается, что сообщение относится к ближайшему классу в иерархии. Методы родительского класса, которые могут переопределяться в подклассах, называются виртуальными и создаются с указанием ключевого слова virtual.

Потоковые классы

Язык C++ содержит дополнительные средства ввода/вывода. Три объекта cin, cout и cerr, подключаемые к программе посредством файла IOSTREAM.H, служат для выполнения операций консольного ввода и вывода. Все операторы классов этих объектов могут быть перегружены в производных классах, создаваемых пользователем. Благодаря этой возможности операции ввода/вывода можно легко настраивать в соответствии с особенностями работы конкретного приложения.

Основные компоненты программ на языках C/C++

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

Простейшая программа на языке С

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

* simple.с.

* Ваша первая программа на С.

#include <stdio.h> int main ()

printf( Здравствуй, мир! return(0);

В этом маленьком тексте программы скрыто много интересного. Начнем с блока комментариев:

* simple. с

* Ваша первая программа на С.



Любая программа, написанная профессиональным программистом, всегда начинается с комментариев. В языке С блок комментариев Начинается символами / *, а заканчивается символами */. Все, что находится между ними, игнорируется компилятором.

Следующая строка, называемая директивой препроцессора, характерна для языка С.

#include <stdio.h>

Директивы препроцессора - это своего рода команды компилятора. В данном случае компилятор получает указание поместить в этом месте программы код, хранящийся в библиотечном файле STDIO.H. Файлы с расширением Н называются файлами заголовков и обычно содержат объявления различных констант и идентификаторов, а также прототипы функций. Хранение такого рода информации в отдельном файле облегчает доступ к ней из разных программ и улучшает структурированность программы.

Вслед за директивой препроцессора расположен блок описания функции:

int main ()

return(0); /* или return 0; */

Все программы на языке С обязательно содержат функцию main ( ) . С нее начинается выполнение программы, которое завершается вызовом инструкции return. Ключевое слово intслева от имени функции указывает на тип возвращаемых ею значений. В нашем случае возвращается целое число. Значение 0 в инструкции return будет воспринято как признак успешного завершения программы. Допускается использование инструкции return без круглых скобок.

Тело функции main () расположено межжду символами { и } , называемыми фигурными скобками. Фигурные скобки широко применяются для выделения в программе блоков инструкций. Это может быть тело функции, как в данном примере, тело цикла, например for или while, либо операторная часть условных конструкций if/else или switch/case.

В нашем случае тело функции main ( ) , помимо стандартного вызова инструкции return, состоит из единственной команды, осуществляющей вывод на экран строки приветствия:

printf( Привет, юзер! );

Прототип функции printf () описан в файле STDIO.H.

Простейшая программа на языке C++

В следующем примере мы реализуем те же самые действия, но на этот раз средствами языка

C++.

simple.cpp

Ваша первая программа на C++ #include <iostream.h> int main ()

cout << Здравствуй, мир!

return(0);

Имеется три различия между этой программой и той, что мы рассмотрели ранее. Во-первых, комментарии выделены не парой символов /* */, а символами , расположенными в каждой строке блока комментариев. Во-вторых, имя файла в директиве finclude было изменено на IOSTREAM.H. И наконец, вывод дайных осуществляется посредством объекта cout, который появился в программе благодаря файлу IOSTREAM.H. В следующих примерах книги мы будем обращать ваше внимание на другие отличия языка C++ от С.

Получение данных от пользователя в языке С

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

* ui.c



* Данная программа предлагает пользователю ввести длину в футах, после

* чего переводит полученное значение в метры и сантиметры.

#include <stdio.h> int main ()

float feet, meters, centimeters; printf( Введите количество футов: ) ; scanf( %f,Sfeet);

while(feet > 0) {

centimeters = feet * 12 * 2.54; meters = centimeters/100; printf( %8.2f(футы) равняется\n , feet); printf( %8.2f( метры) \n ,meters); printf( %8.2f( сантиметры) \n ,centimeters); printf( \nВведите другое значение \n ); printf( (О- конец программ:): ) ; scanf( %f , &feet);

printf( > До свидания! <<< ) ; return(0);

Объявление переменных

Первое, что бросается в глаза в этом примере, - объявление переменных:

float feet, meters, centimeters;

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

Ввод данных пользователем

Следующие строки, вид которых может показаться довольно необычным, обеспечивают ввод данных пользователем:

printf( Введите количество футов: ); scanf( %f ,&feet);

Функция scant () должна содержать строку форматирования, которая определяет, в каком порядке будут вводиться внешние данные и как они будут интерпретироваться программой. Заключенный в кавычки параметр %f указывает, что вводимые данные будут приведены к типу float. В языках С и C++ для значений этого типа отводится 4 байта. (Более подробно о различных типах данных, существующих в C/C++, см. в следующей главе.)

Оператор взятия адреса

Обратите внимание, что.в рассмотренном выше примере переменной feet в функции scanf () предшествует символ амперсанда (&). Это оператор взятия адреса. Всюду, где имени переменной предшествует этот оператор, компилятор будет использовать вместо значения переменной ее адрес. Особенность функции scanf () заключается в том, что она ожидает именно адрес переменной, которой будет присвоено новое значение.

Простейший цикл while

Один из самых простых способов создания цикла в программе на языке С заключается в использовании инструкции while:

while(feet > 0)



1 ... 17 18 19 [ 20 ] 21 22 23 ... 150

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