Добавление файлов и классов в проект

 

На данном этапе мы рассмотрим добавление файлов в проект, а так же добавление классов. В среде Visual C++ при добавлении классов при помощи встроенного «конструктора» для каждого класса создается свой файл. Мы не будем отходить от этого и тоже пока будем создавать для каждого класса свой файл. Но это не стоит принимать как руководство к действию, так как в некоторых случаях это бесполезно или может отрицательно сказаться на всем проекте. Выше уже было сказано, что классы в проект можно добавлять посредством конструктора, который добавляет много разнообразной информации, которая на первых шагах может сильно запутать неопытного программиста. Поэтому пока мы будем добавлять классы вручную, но в последующих шагах рассмотрим способ добавления классов посредством конструктора.

Создадим свой класс, описание которого поместим в файл MyClass.h, а его реализацию поместим в файл MyClass.cpp.

Для выполнения этого откроем наш проект, который мы создали в шаге создания проекта. Для открытия проекта нужно выполнить следующее действие: запускаем среду Visual C++, в меню выбираем "File", а здесь, в свою очередь, выбираем пункт "Open Workspace". Обратите внимание, что выбираем этот пункт, а не просто функцию "Open", так как пункт "Open" предназначен для открытия других фалов, а не файла проекта. После того как Вы выполнили вышеописанное действие, появится диалоговое окно открытия проекта (рис. 6).

 

Рис. 6 – Диалоговое окно "Open Workspace".

 

Рис. 7 – Результат открытия проекта

 

 

Здесь мы "добираемся" до нашего файла проекта. В данном случае – это будет файл MyProject.dsw. Выбираем его и нажимаем "Открыть". Стоит отметить, что файлы проектов имеют расширение dsw.

После открытия проекта Вы должны увидеть следующий результат, как на рис. 7.

Немного рассмотрим окно среды Visual C++ 6.0. Так, в левой части экрана Вы можете увидеть менеджер проекта, в котором имеется несколько закладок (в данном случае 2, но в большинстве 3). Первая закладка ClassView. На ней отображаются классы, их методы и поля, а так же глобальные функции. Вторая закладка, которую мы здесь наблюдаем, – это FileView, на которой отображаются все файлы нашего проекта (см. рис.8).

 

 

Рис. 8 – Менеджер проектов

(открыта опция "FileView").

 

Проект мы открыли, теперь перейдем к созданию класса. Для этого добавим еще два файла к нашему проекту (MyClass.h и MyClass.cpp). В этих целях выполним следующие действия. Выбираем пункт "New" в меню "File" (или, что на мой взгляд проще, нажимаем сочетание клавиш Ctrl+N). После этого появится диалоговое окно, которое было рассмотрено в шаге создания проекта (там же мы добавляли файл main.cpp немного ранее). Здесь для добавления файла MyClass.cpp производим те же действия, только изменяем имя файла. После того, как файл *.cpp добавлен, добавим файл MyClass.h. Для этого выполняем аналогичные действия с той лишь разницей, что выбираем опцию выбора типа файла проекта "C/C++ Header File", а не "C++ Source File".

Теперь подключим наш файл (MyClass.h) к проекту. Для этого открываем файл main.cpp (не через Open, а через FileView) и в нем дописываем такую строку: #include "MyClass.h". Заметьте, что стандартные файлы мы описываем (равнозначно – вызываем) с помощью операторов С++ < >, а созданные пользователем – через " ". Теперь мы получим такой код в файле main.cpp:

 

#include <iostream.h>

#include "MyClass.h"

void main()

{

cout << "Hello World" << endl;

}

 

Теперь немного преобразуем наш файл main.cpp и напишем некоторый текст в остальных файлах. Описывать действия программы не будем, так как мы здесь рассматриваем работу со средой VC++, а не объектное программирование.

После внесения изменений имеем:

 

//Файл main.cpp

#include "MyClass.h"

void main()

{

CPrint pr("Hello World");

pr.Show();

}

 

//Файл MyClass.h

class CPrint

{

char m_str[100];

 

public:

CPrint(const char *pStr);

void Show();

~CPrint();

};

//Файл MyClass.cpp

#include "MyClass.h"

#include <string.h>

#include <iostream.h>

 

CPrint::CPrint(const char *pStr)

{

strcpy(m_str, pStr);

}

 

CPrint::~CPrint()

{

cout << "Destroy object" << endl;

}

 

void CPrint::Show()

{

cout << m_str << endl;

}

 

После написания всего исходного текста собираем программу и запускаем на выполнение (как это делается, мы уже рассматривали).

Если все было сделано правильно и Вы не допустили ни одной ошибки при написании исходных текстов, то получите результат, показанный на рис. 9.

 

 

Рис. 9 – Результат выполнения исправленного проекта

 

Если же были допущены ошибки, то компилятор выдаст об этом сообщение. Как использовать эти сообщения для облегчения поиска ошибок, мы рассмотрим на другом шаге.