Разлика между структура и клас в C++

Основни разлики между структура и клас в C++

  • Структурата е дефиниран от потребителя тип данни, който групира логически свързани елементи от данни, докато класът е план, използван за създаване на специфични типове обекти.
  • In C++, както структурите, така и класовете поддържат дефинирани от потребителя конструктори и деструктори.
  • Основната разлика е, че членовете на структурата са публични по подразбиране, докато членовете на класа са частни по подразбиране.
  • И двете могат да поддържат наследяване, полиморфизъм и капсулиране.
  • Структурите често се използват за прости групи от данниpingКласовете са предпочитани за сложни поведения и дизайни.
  • Разпределението на паметта (стек или куп) зависи от това как са декларирани обектите, а не от това дали са класове или структури.
  • Членските променливи могат да се инициализират директно както в структури, така и в класове в modern C++.
Разлика между структура и клас
Разлика между структура и клас

Каква е структурата в C++?

Структурата е дефиниран от потребителя тип данни, който съчетава заедно логически свързани елементи от данни от различни типове данни като float, char, int и т.н.

Всички структурни елементи се съхраняват в съседни места в паметта. Променливата тип структура ви помага да съхранявате повече от един елемент от данни от различни типове данни под едно име.

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

Ето синтаксис на структурата:

struct struct_name
{
// struct data members
}

В горния синтаксис се използва ключовата дума struct. struct_name е името на структурата. Членовете на структурата се добавят във фигурни скоби. Тези членове вероятно принадлежат към различни типове данни.

Какво е Class in C++?

Класът е план или набор от инструкции за изграждане на конкретен тип обект. Това е основна концепция на обектно-ориентираното програмиране, която се върти около обекти от реалния живот. Клас в а програмен език определя как ще се държи даден обект и какво ще съдържа обектът.

Класът също е дефиниран от потребителя тип данни, който може да има различни типове данни и членски функции в тялото си.

Синтаксис на Class in C++

Ето синтаксис на класа:

class class-name
{
// data
// functions
};

В горния синтаксис името на класа е името, което е присвоено на класа. Данните са членът на класа, обикновено деклариран като променливи. Функциите тук са функциите на класа.

Структура срещу клас в C++

Ето основната разлика между структурата и класа в C++:

структура клас
Структурата е дефиниран от потребителя тип данни, който групира свързани променливи. Класът е дефиниран от потребителя тип данни, който действа като план за обекти.
Деклариран с помощта на struct ключова дума. Деклариран с помощта на class ключова дума.
Спецификаторът за достъп по подразбиране е обществен. Спецификаторът за достъп по подразбиране е частен.
Поддържа функции-членове, конструктори, деструктори и наследяване точно като класове. Напълно поддържа OOP функции като конструктори, деструктори, наследяване, полиморфизъм.
Членовете могат да бъдат частни или защитени, ако са изрично декларирани. Същото и тук — контролът на достъпа се поддържа напълно.
In C++, структурите и класовете са почти идентични, с изключение на спецификатора за достъп по подразбиране. Същите възможности; само спецификаторът за достъп по подразбиране се различава.
Използва се често за обикновени структури от данни (POD: Plain Old Data). Използва се често за пълен OOP дизайн.
Случаите обикновено се наричат ​​неофициално „структурни променливи“. Инстанциите се наричат ​​обекти.

Коя да изберете?

Ако имате голям отпечатък от паметта или искате да използвате концепция като наследяване, тогава можете да изберете клас. От друга страна, структурата може да се използва, когато имате малко поле за памет или отпечатък, който е необходим за инициализиране на стойностите по подразбиране.

Обобщете тази публикация с: