Классы в С++ определяются ключевым словом class.
Они представляют собой форму структуры, у которой спецификация доступа по умолчанию – private, то естьесть сокращенная запись
Хотя определение класса через структуру и справедливо, базовым в языке С++ является понятие класса. В С++ принято считать, что структура struct – это просто класс, все члены которого общие, то есть
есть просто сокращенная запись
Структуры необходимо использовать в тех случаях, когда сокрытие данных неуместно.
В качестве иллюстрации, представим абстрактный тип данных для комплексных чисел с помощью структуры и с помощью класса. Основное отличие — в использовании ключевых слов: private и public.
С использованием структуры:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct complex
{
void assign(double r, double i);
void print()
{
cout << real << " ";
if(imag > 0)
cout << "+";
cout << imag << "i";
}
private:
double real;
double imag;
};
void complex::assign(double r, double i = 0.0)
{
real = r;
imag = i;
}
С использованием класса:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class complex
{
double real;
double imag;
public:
void assign(double r, double i);
void print()
{
cout << real << " ";
if(imag > 0)
cout << "+";
cout << imag << "i";
}
};
void complex::assign(double r, double i = 0.0)
{
real = r;
imag = i;
}
Чаще всего структуры содержат только поля и не содержат методов.
Если предполагается создание объектов, для которых будут реализованы методы их использования, то целесообразно использовать класс.