Реализацыя класса в С++ немного сложннее, чем в Java или
C#. Вся сложность состоит в том что классы в С++ состоят из двух файлов: файл
заголовка и файл исходника. Файл заголовка хранит в себе общекласовий переменные
и структуру самого класса с модификаторами доступа. Файл исходников реализирует
весь код класса и заполняет все данные. По сути заглавочний файл это додаток до
файла исходникав, чтобы изолировать структуру и обявление переменных(полей), а
все ради удобности записи кода. Название етих двух файлов дожни совпадат, а
различаются лиш их разширениея. В заголовчном файле ето .h а в файле исходников(реализации) .срр.
Свойства и методы.
Свойствами, в объектно-ориентированной
парадигме программирования, называют блоки, которые хранят в себе какие либо
значение, по сути, это обычные переменные.
Методы это фрагменты
кода, которые исполняют некие действия в классе, например расчеты и заполнения свойств
класса.
Для примера в
классе «человек», свойствами будут его имя, фамилия, дата рождения, высота,
масса и тому подобное. А вот методами будет ходьба, бег, умственная
деятельность и тому подобное. Вот как это будет выгладить в коде С++
class people
{
public:
double height;
QDate date_birsdae;
QString first_name;
QString second_name;
int mass;
void Run();
void Walking();
void Thinking();
};
Создание
класса в Qt Creator
Как создават новый проект, я думая вам уже не надо, но
добавить до существующего проекта новий клас можно двемя способами.
Первый виглядит так:
1) В
вкладке файл выбрат пункт «Новий файл или проект» либо просто нажав на
комбинацыю клавиш Ctrl + N.
2) В
открившемся окне вибрать с раздела «Файли и классы» пункт «С++» и соответствено
в изменившейся правой части выбрать пункт «Класс С++».
3) Нажат
на кнопку «Выбрать . . . »
4) В поле «Имя класса» ввести свое название класса,
а также возможно выбрать базовый класса и тип класса. Название заголовочного и
файла исходников, а также путь, где будут размещены файлы, сгенерируются сами. После
этого следует нажать на кнопку «Далее»
5) Если у вас сейчас открыты несколько
проектов, тогда можете выбрать именно тот проект, в который хотите добавить данный
класс. После этого можете нажимать на кнопку «Завершить». После этого класс
автоматически добавится в ваш проект.
Второй способ
добавить класс более сложный и состоит в том, чтобы добавлять заголовочный файл
и файл исходников отдельно, а потом уже их связывать между собой. Добавлять эти
файлы можно аналогично до класса, а вот чтобы связать их вместе надо разобраться
в самой структуре этих файлов.
Структура классов в С++
И так вот
структура файла class1.h.
#ifndef CLASS1_H
#define CLASS1_H
class class1
{
public:
class1();
};
#endif // CLASS1_H
Директивы компилятора
#ifndef CLASS1_H
#define CLASS1_H
#endif // CLASS1_H
Обеспечивает то,
что при вызове #include
"class1.h" несколько раз в
одном проекте выполнится только один раз, а все остальные разы данную директиву
компилятор будет игнорировать.
class class1
ключевое слово class обозначает объявление название самого класса, а class1 то самое название класса. В фигурных скобках записываются данные самого класса, такие как свойства и методы.
public:
этот рядок обозначает модификатор доступа до свойств и методов, а именно то, что все данные, что там записаны, есть доступными для всех процессов, что находятся вне класса.
class1();
обозначает функцию,
что вызывается при создании объекта из данного класса. Такая функция называется
конструктором класса и, по сути, содержит инструкции для создания самого объекта
и начальные данные для полей объекта. Перед конструктором не ставиться никакого
ключевого слова, так как он заведомо ничего не возвращает, а также стоит помнить, что имя конструктора совпадает с
названием самого класса, в котором он находится.
Второй файл это файл
исходников class1.cpp:
#include "class1.h"
class1::class1()
{
}
Подключается заголовочный файл к файлу исходного кода с помощью всего одной директивы компилятора. #include "class1.h"
class1::class1()
{
}
Даная контракция позволяет получить доступ к конструктору class1() через класс class1. В Фигурных скобках записывается код самого конструктора класса.