Прежде чем говорить о сравнении структур и классов в языке программирования С++ необходимо пояснить, что такое классы.
Класс — это вид структуры, спецификация доступа которой по стандарту — 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;
}
Заключение.
В большинстве случаев структуры содержат в себя поля, но не содержать методов. При планировании объектов, в которых будут выполнять данные методы их использования, то более рационально применять классы.