Классы против структуры против союза в C ++
Класс : это определяемый пользователем тип данных, содержащий переменные и функции. Это как план объекта. Члены класса по умолчанию являются закрытыми. Например, автомобиль - это объект, его цвет, дизайн, вес - его атрибуты, а тормоз, ограничение скорости и т. Д. - его функции.
Синтаксис:
класс <имя_класса> { частный: // Члены данных ........... ...... ....... общественность: // Члены данных // Функция-член ......... ........ ...... защищено: // Члены данных // Функция-член ....... ....... ...... };
Ниже приведена программа на C ++ для иллюстрации класса:
C ++
// C++ program to illustrate class #include <bits/stdc++.h> using namespace std; // Class with data members // and member function class Geeks { public : string geekname; int roll_no; // Function printName // prints the name void printName() { cout << "Geekname is: " << geekname; } // Function printRollno // prints the roll no void printRollno() { cout << "Roll no is: " << roll_no; } }; // Driver Code int main() { // Object of class Geeks Geeks obj1; // Initialize a public data // members of class Geeks obj1.geekname = "Geek" ; obj1.roll_no = 15; // Function Call obj1.printName(); cout << endl; // Function Call obj1.printRollno(); return 0; } |
Имя компьютерщика: Компьютерщик Число баллов: 15
Объяснение: В приведенном выше примере C ++ класс Geeks имеет элементы данных и функцию-член в спецификаторе общего доступа. Члены данных инициализируются некоторыми значениями с использованием объекта класса. С помощью объекта вызываются функции класса.
Структура : это удобный способ группировки переменных. Члены структуры по умолчанию являются общедоступными. Структуры можно использовать для эффективного повышения уровня абстракции с целью улучшения кода.
Синтаксис:
структура <имя_структуры> { // Члены данных ....... ...... ...... // Функции-члены ....... ...... ...... };
Ниже приведена программа на C ++ для иллюстрации структуры:
C ++
// C++ program to illustrate structure #include <bits/stdc++.h> using namespace std; // Structure with data members // and member function struct geekyPerson { // Data members string name; int age; float salary; // Member function to display void display() { cout << "Name: " << name << endl; cout << "Age: " << age << endl; cout << "Salary: " << salary; } }; // Driver Code int main() { // Instance of the structure geekyPerson g1; // Accessing the data by the // dot operator g1.name = "Geeky" ; g1.age = 23; g1.salary = 15000; // Function Call g1.display(); return 0; } |
Имя: Geeky Возраст: 23 года Заработная плата: 15000
Объяснение: Тег структуры используется перед именем структуры для определения структуры. Каждое определение члена - это обычное определение переменной, например int i; или float f; или любое другое допустимое определение переменной. С помощью объекта вызываются функции конструкции.
Союз : это определяемый пользователем тип данных. Это похоже на строения. Все данные-члены союза используют одну и ту же ячейку памяти. Размер союза зависит от размера самого большого члена союза. Чтобы использовать одну и ту же ячейку памяти для двух или более членов, лучше всего будет объединение.
Синтаксис:
союз <union_name> { // Члены данных ..... ....... ......... } union_variables; где, union_name - название было присвоено союзу. union_variable - объект объединения. Члены данных - переменные-члены.
Ниже приведена программа на C ++ для иллюстрации объединения:
C ++
// C++ program to illustrate union #include <bits/stdc++.h> using namespace std; // Union declaration with the // data members union geeks { int id; int salary; char name[30]; int age; }; // Driver Code int main() { // Instance of the union union geeks g1; g1.id = 1; cout << "Id : " << g1.id << endl; strcpy (g1.name, "Geeky" ); cout << "Name : " << g1.name << endl; g1.salary = 35000; cout << "Salary : " << g1.salary << endl; g1.age = 25; cout << "Age : " << g1.age << endl; return 0; } |
Id: 1 Имя: Geeky Заработная плата: 35000 Возраст: 25
Объяснение: В объединении объекты также используются для доступа к элементам данных и функциям-членам.