Тип
По умолчанию экземпляры встроенных типов не инициализируются. Когда создается переменная типа
В памяти числовые типы (кроме
Определения класса
Классы определяются в С++ аналогично тому, как это делается в Java и C#, однако надо иметь в виду, что существует несколько отличий. Мы рассмотрим эти отличия на нескольких примерах. Начнем с класса, представляющего пару координат
01 #ifndef POINT2D_H
02 #define POINT2D_H
03 class Point2D
04 {
05 public:
06 Point2D {
07 xVal = 0;
08 yVal = 0;
09 }
10 Point2D(double x, double у) {
11 xVal = x;
12 yVal = у;
13 }
14 void setX(double x) { xVal = x; }
15 void setY(double у) { yVal = у; }
16 double x const { return xVal; }
17 double y const { return yVal; }
18 private:
19 double xVal;
20 double yVal;
21 };
22 #endif
Представленное выше определение класса обычно оформляется в виде заголовочного файла, типичным названием которого может быть
• Определение класса разделяется на секции (открытую, защищенную и закрытую) и заканчивается точкой с запятой. Если не указано ни одной секции, по умолчанию используется закрытая секция. (Для совместимости с языком С в С++ предусмотрено ключевое слово
• Данный класс имеет два конструктора (один без параметров и другой с двумя параметрами). Если в классе вообще не объявляется конструктор, С++ автоматически добавляет конструктор без параметров и с пустым телом.
• Функции, получающие данные,
Указанные выше функции реализовывались бы как встроенные функции, являющиеся частью определения класса. Альтернативный подход заключается в предоставлении в заголовочном файле только прототипов функций и реализации функций в файле
01 #ifndef POINT2D_H
02 #define POINT2D_H
03 class Point2D
04 {
05 public:
06 Point2D;
07 Point2D(double x, double у);
08 void setX(double x);
09 void setY(double у);
10 double x const;
11 double y const;
12 private:
13 double xVal;
14 double yVal;
15 };
16 #endif
Реализация функций выполнялась бы в файле
01 #include "point2d.h"
02 Point2D::Point2D
03 {
04 xVal = 0.0;
05 yVal = 0.0;
06 }