Запуск первой программы

Чтобы запустить нашу первую программу, сначала необходимо ее откомпилировать, то есть преобразовать в выполняемый файл first.exe. Выполните команду Build д Build First.exe, и исходный файл first.cpp будет скомпилирован в first.exe.

Во время компиляции в окне результатов Visual C++ (в нижней части окна Developer Studio) отображается следующий текст:

---Configuration: first - Win32 Debug---
Compiling...
first.cpp
Linking...
first.exe - 0 error(s), 0 warning(s)

Теперь запустите программу командой Build д Execute first.exe. Результат ее работы изображен на рис. 1.6.

 
Рис. 1.6. Запуск первой программы

На рис. 1.6 виден текст сообщения Welcome to C++ и подсказка Press any key to continue, вставленная Visual C++. Если нажать любую клавишу, окно исчезнет с экрана.

Только что мы успешно создали и запустили свою первую консольную программу для Win32 - работа с C++ началась. Исходный текст программы из файла first.cpp приведен в листинге (см. ниже).

first.cpp
#include <iostream.h>
void main()
{
cout << "Welcome to C++ \n"";
}

На примере этой маленькой программы мы познакомились с проектами и рабочими областями Visual C++, с компиляцией программ и с редактированием текстов. Теперь можно заняться собственно программированием на C++. C++ считается объектно-ориентированным языком; сейчас мы выясним, что составляет главную суть этого понятия.

Классы и объекты C++

Объекты и классы - две фундаментальные концепции всех объектно-ориентированных языков (типа C++). Поскольку эти концепции достаточно важны, мы потратим несколько минут на знакомство с ними, что избавит нас от затрат времени и недоразумений в будущем. Из-за шумихи, поднятой в последнее время, объектно-ориентированное программирование (ООП) может показаться таинственным и неприступным, но это совсем не так. На самом деле ООП было придумано для того, чтобы упростить написание длинных программ. Наш мини-обзор объектно-ориентированного программирования начнется с объектов.











Что такое объект?

В длинных и сложных программах переменные и функции могут исчисляться сотнями. Это заметно усложняет создание и сопровождение таких программ, поскольку вам приходится помнить обо всем этом. Наличие переменных с одинаковыми именами в различных функциях может привести к нежелательным конфликтам. Объектно-ориентированное программирование как раз и было изобретено для того, чтобы большие программы можно было разделять на отдельные части.

В концепции объектов нет ничего сложного. Программа просто делится на фрагменты, каждый из которых предназначен для решения отдельной задачи; эти фрагменты и называются объектами. Например, весь код для экранного вывода можно выделить в объект с именем screen (экран). Объекты обладают большими возможностями, чем простые функции и переменные, поскольку в них могут содержаться как функции, так и переменные, что облегчает работу с ними. Наш объект screen может содержать не только все данные, отображаемые на экране, но и функции для работы с этими данными, например drawString() (для вывода строк) или drawLine() (для рисования линий). Это означает, что вся работа с экраном изолируется от остальной части программы, что упрощает работу программиста.

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

Что такое класс?

Но как создать объект? На помощь приходят классы. Класс для объекта - примерно то же, что форма для печенья; другими словами, класс можно рассматривать как шаблон или "форму" для изготовления объектов. В программировании подобная связь существует между типом данных (например, целочисленным) и переменной. Например, в следующем примере создается целая переменная с именем the_data:
int the_data;

Именно так создаются целочисленные переменные в C++. Здесь int - тип переменной, а the_data - имя самой переменной. Аналогичная связь существует между классом и объектом. Приближенно класс можно рассматривать как тип объекта.

 

Как мы вскоре убедимся, C++ поддерживает все стандартные типы данных, принятые в программировании - int, double, long, float и т. д.

 

Например, если заранее подготовить класс screenclass, можно создать объект этого класса с именем screen:

screenclass screen;

Важно помнить о том, что все рабочие данные хранятся в объекте. Класс не содержит никаких данных; он лишь описывает общую структуру и поведение объекта.

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

На этом краткий обзор классов и объектов завершается. Подведу итог: класс представляет собой программную конструкцию для объединения (или инкапсуляции) функций и данных. Объект можно рассматривать как переменную, тип которой совпадает с данным классом - подобно тому, как объект screen принадлежал классу screenclass.

В комплект Visual C++ входит целая библиотека заранее написанных классов - Microsoft Foundation Classes (MFC), которая заметно облегчает работу программиста. На ее основе можно создавать объекты для работы с кнопками, текстовыми полями, полосами прокрутки и т. д. Фирма Microsoft уже поработала за нас, и позднее мы воспользуемся этим.

А теперь давайте рассмотрим пример программы, в которой используются классы и объекты.

Наша первая программа на C++ с классами и объектами

В следующем примере мы создадим класс DataClass и объект этого класса DataObject. Ни класс, ни объект не будут обладать особо впечатляющими возможностями, но зато пример поможет вам разобраться в том, как работают классы и объекты.

Создайте в Visual C++ новый проект с именем classes так, как это было сделано в предыдущем примере. Затем включите в него новый файл с именем classes.cpp. После этого можно добавить код; как и раньше, начнем со включения файла iostream.h:

#include <iostream.h >
.
.
.

После этого объявим новый класс DataClass:
#include <iostream.h>
class DataClass
{
};

Новые классы объявляются с ключевым словом class. Оставшаяся часть объявления класса заключается в фигурные скобки { и }.

Почти во всех объектах C++ хранятся определенные данные; такая возможность будет предусмотрена и в классе DataClass. Для хранения данных используются переменные класса1. Например, в класс можно включить переменную типа int (то есть создать целую переменную класса) с именем PrivateDataMember:

#include <iostream.h>
class DataClass
{
private:
int PrivateDataMember;
.
.
.

Новая переменная класса имеет целый тип и, соответственно, может хранить целочисленные значения. Обратите внимание на ключевое слово private - оно означает, что переменная класса является закрытой, и с ней могут работать только объекты нашего класса DataClass. Ключевое слово private называется модификатором доступа.

 

Если опустить модификатор доступа в объявлении класса, по умолчанию используется модификатор private.

 

















Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: