Структуры, объединения и перечисления в C ++
В этой статье мы обсудим структуры, объединения и перечисления, а также их различия.
- Структура - это определяемый пользователем тип данных, доступный в C ++.
- Структуры используются для объединения различных типов данных, так же как массив используется для объединения одного и того же типа типов данных.
- Структура объявляется с помощью ключевого слова « struct ». Когда мы объявляем переменную структуры, нам нужно написать ключевое слово « struct на языке C, но для C ++ это ключевое слово не обязательно.
Синтаксис:
структура { // Объявление структуры }
Ниже приведена программа на C ++, демонстрирующая использование структуры:
C ++
// C++ program to demonstrate the // making of structure #include <bits/stdc++.h> using namespace std; // Define structure struct GFG { int G1; char G2; float G3; }; // Driver Code int main() { // Declaring a Structure struct GFG Geek; Geek.G1 = 85; Geek.G2 = 'G' ; Geek.G3 = 989.45; cout << "The value is : " << Geek.G1 << endl; cout << "The value is : " << Geek.G2 << endl; cout << "The value is : " << Geek.G3 << endl; return 0; } |
Значение: 85 Значение: G Значение: 989,45
Объяснение: В приведенном выше коде эти значения присваиваются полям (G1, G2, G3) сотрудника структуры, а в конце печатается значение «зарплата».
Структура с использованием typedef : typedef - это ключевое слово, которое используется для присвоения нового имени любому существующему типу данных. Ниже приведена программа на C ++, иллюстрирующая использование структуры с использованием typedef :
C ++
// C++ program to demonstrate the use // of struct using typedef #include <bits/stdc++.h> using namespace std; // Declaration of typedef typedef struct GeekForGeeks { int G1; char G2; float G3; } GFG; // Driver Code int main() { GFG Geek; Geek.G1 = 85; Geek.G2 = 'G' ; Geek.G3 = 989.45; cout << "The value is : " << Geek.G1 << endl; cout << "The value is : " << Geek.G2 << endl; cout << "The value is : " << Geek.G3 << endl; return 0; } |
Значение: 85
Значение: G
Значение: 989,45
Объяснение:
- В приведенном выше коде ключевое слово « typedef » используется перед структурой, а после закрывающей скобки структуры записывается «GFG ».
- Теперь создайте переменные структуры без использования ключевого слова « структура » и имени структуры.
- Был создан экземпляр структуры с именем «Компьютерщик», просто написав перед ним «GFG».
Объединения: объединение - это тип структуры, который может использоваться, когда объем используемой памяти является ключевым фактором.
- Подобно структуре, объединение может содержать разные типы данных.
- Каждый раз, когда новая переменная инициализируется из объединения, она перезаписывает предыдущую в языке C, но в C ++ нам также не требуется это ключевое слово и используется это место в памяти.
- Это наиболее полезно, когда тип данных, передаваемых через функции, неизвестен, использование объединения, которое содержит все возможные типы данных, может решить эту проблему.
- Он объявляется с использованием ключевого слова « union ».
Ниже представлена программа на C ++, иллюстрирующая реализацию union:
C ++
// C++ program to illustrate the use // of the unions #include <iostream> using namespace std; // Defining a Union union GFG { int Geek1; char Geek2; float Geek3; }; // Driver Code int main() { // Intializing Union union GFG G1, G2, G3; G1.Geek1 = 34; G2.Geek2 = 34; G3.Geek3 = 34.34; // Printing values cout << "The first value at " << "the allocated momery : " << G1.Geek1 << endl; cout << "The next value stored " << "after removing the " << "prevous value : " << G2.Geek2 << endl; cout << "The Final value value " << "at the same allocated " << "memeory space : " << G3.Geek3 << endl; return 0; } |
The first value at the allocated momery : 34
The next value stored after removing the prevous value : ”
The Final value value at the same allocated memeory space : 34.34
Объяснение: В приведенном выше коде, когда переменная «Geek1» инициализирована, она отображает значение, затем «Geek 2» перезаписывается и больше не существует, поскольку Geek2 имеет тип char, поэтому он не отображает никакого значения.
Перечисления : перечисления - это определяемые пользователем типы, состоящие из именованных целочисленных констант.
- Это помогает назначать константы набору имен, чтобы программу было легче читать, поддерживать и понимать.
- Перечисление объявляется с использованием ключевого слова « enum ».
Ниже приведена программа на C ++, иллюстрирующая использование enum:
C ++
// C++ program to illustrate the use // of the Enums #include <bits/stdc++.h> using namespace std; // Defining an enum enum GeeksforGeeks { Geek1, Geek2, Geek3 }; GeeksforGeeks G1 = Geek1; GeeksforGeeks G2 = Geek2; GeeksforGeeks G3 = Geek3; // Driver Code int main() { cout << "The numerical value " << "assigned to Geek1 : " << G1 << endl; cout << "The numerical value " << "assigned to Geek2 : " << G2 << endl; cout << "The numerical value " << "assigned to Geek3 : " << G3 << endl; return 0; } |
Числовое значение, присвоенное Geek1: 0 Числовое значение, присвоенное Geek2: 1 Числовое значение, присвоенное Geek3: 2
Объяснение: В приведенном выше коде именованным константам, таким как Geek1, Geek2 и Geek3, присвоены целочисленные значения, такие как 0, 1, 2 соответственно, в то время как выводится.