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

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

Класс — это вид структуры, спецификация доступа которой по стандарту — private, то есть:

class s { …};

Существует также сокращённый вариант записи:

struct s {private: …};

Несмотря на корректность данного определения класса, всё же стандартным в языке С++ считается понятие класса. Также, как правило, говорят, что структуры struct являются классами, у которых все члены определяются как общие, то есть:

struct s {…};

Упрощённая запись имеет вид:

class s {public: …};

Применение.

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

Пример.

Как пример можно привести представление для комплексных чисел типа данных, пользуясь структурами и классами. Однозначное отличие здесь — применение ключевых слов private и public.

Пример со структурой:

struct complex
{
void assign(double r, double i);
void print() { cout << real << « + » << imag << «i»; }
private:
double real;
double imag;
};
void complex::assign(double r, double i = 0.0)
{
real = r;
imag = i;
}

Пример с классом:

class complex
{
double real;
double imag;
public:
void assign(double r, double i);
void print() { cout << real << « + » << imag << «i»; }
};
void complex::assign(double r, double i = 0.0)
{
real = r;
imag = i;
}

Заключение.

В большинстве случаев структуры содержат в себя поля, но не содержать методов. При планировании объектов, в которых будут выполнять данные методы их использования, то более рационально применять классы.

Добавить комментарий

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