Сравнение классов и структур в C++ : понятие класса

Сравнение классов и структур в C++

Классы в С++ определяются ключевым словом class.

Они представляют собой форму структуры, у которой спецификация доступа по умолчанию – private, то есть

 
class s { …};

есть сокращенная запись

 
struct s {private: …};

Хотя определение класса через структуру и справедливо, базовым в языке С++ является понятие класса. В С++ принято считать, что структура struct – это просто класс, все члены которого общие, то есть

 
struct s {…};

есть просто сокращенная запись

 
class s {public: …};

Структуры необходимо использовать в тех случаях, когда сокрытие данных неуместно.

В качестве иллюстрации, представим абстрактный тип данных для комплексных чисел с помощью структуры и с помощью класса. Основное отличие — в использовании ключевых слов: private и public.

С использованием структуры:

1
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;
}

С использованием класса:

1
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;
}

Чаще всего структуры содержат только поля и не содержат методов.

Если предполагается создание объектов, для которых будут реализованы методы их использования, то целесообразно использовать класс.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх