Типы данных, определяемые пользователем в C ++

Опубликовано: 3 Декабря, 2021

Типы данных - это средства для идентификации типа данных и связанных операций по их обработке. Есть три типа данных:

  1. Предопределенные типы данных
  2. Производные типы данных
  3. Пользовательские типы данных

В этой статье объясняется определяемый пользователем тип данных:

Типы данных, определяемые пользователем:

Типы данных, определяемые пользователем, называются производным типом данных или определяемым пользователем производным типом данных.
Эти типы включают:

  • Класс
  • Состав
  • Союз
  • Перечисление
  • Определенный Typedef DataType

Ниже приводится подробное описание следующих типов:

  1. Класс: Строительный блок C ++, который ведет к объектно-ориентированному программированию, - это класс . Это определяемый пользователем тип данных, который содержит свои собственные элементы данных и функции-члены, к которым можно получить доступ и использовать, создав экземпляр этого класса. Класс подобен проекту объекта.

    Синтаксис :

    Пример:

    // C++ program to demonstrate
    // Class
    #include <bits/stdc++.h>
    using namespace std;
    class Geeks {
    // Access specifier
    public :
    // Data Members
    string geekname;
    // Member Functions()
    void printname()
    {
    cout << "Geekname is: " << geekname;
    }
    };
    int main()
    {
    // Declare an object of class geeks
    Geeks obj1;
    // accessing data member
    obj1.geekname = "GeeksForGeeks" ;
    // accessing member function
    obj1.printname();
    return 0;
    }
    Выход:
    Имя компьютерщика: GeeksForGeeks
    
  2. Структура : структура - это определяемый пользователем тип данных в C / C ++. Структура создает тип данных, который можно использовать для группировки элементов, возможно, разных типов в один тип.

    Синтаксис:

    struct address {
        имя символа [50];
        улица Чарская [100];
        символ города [50];
        состояние символа [20];
        int pin;
    };

    Пример:

    // C++ program to demonstrate
    // Structures in C++
    #include <iostream>
    using namespace std;
    struct Point {
    int x, y;
    };
    int main()
    {
    // Create an array of structures
    struct Point arr[10];
    // Access array members
    arr[0].x = 10;
    arr[0].y = 20;
    cout << arr[0].x << ", " << arr[0].y;
    return 0;
    }
    Выход:
    10, 20
    
  3. Объединение : как и структуры, объединение - это тип данных, определяемый пользователем. В союзе все члены используют одну и ту же ячейку памяти. Например, в следующей программе на C и x, и y находятся в одном месте. Если мы изменим x, мы увидим, что изменения отражаются на y.
    #include <iostream>
    using namespace std;
    // Declaration of union is same as the structures
    union test {
    int x, y;
    };
    int main()
    {
    // A union variable t
    union test t;
    // ty also gets value 2
    tx = 2;
    cout << "After making x = 2:"
    << endl
    << "x = " << tx
    << ", y = " << ty
    << endl;
    // tx is also updated to 10
    ty = 10;
    cout << "After making Y = 10:"
    << endl
    << "x = " << tx
    << ", y = " << ty
    << endl;
    return 0;
    }
    Выход:
    Сделав x = 2:
    х = 2, у = 2
    Сделав Y = 10:
    х = 10, у = 10
    
  4. Перечисление : Перечисление (или перечисление) - это определяемый пользователем тип данных в C. Он в основном используется для присвоения имен целочисленным константам, имена облегчают чтение и поддержку программы.

    Синтаксис:

     enum State {Working = 1, Failed = 0}; 
    // Program to demonstrate working
    // of enum in C++
    #include <iostream>
    using namespace std;
    enum week { Mon,
    Tue,
    Wed,
    Thur,
    Fri,
    Sat,
    Sun };
    int main()
    {
    enum week day;
    day = Wed;
    cout << day;
    return 0;
    }
    Выход:
    2
    
  5. Typedef : C ++ позволяет явно определять новые имена типов данных с помощью ключевого слова typedef. Использование typedef на самом деле не создает новый класс данных, а определяет имя для существующего типа. Это может увеличить переносимость (возможность использования программы на разных типах машин; например, мини, мэйнфрейм, микро и т. Д. Без значительных изменений в коде) программы, поскольку нужно будет изменить только операторы typedef. . Использование typedef также может помочь в самодокументировании кода, позволяя описательные имена для стандартных типов данных.

    Синтаксис:

     typedef имя типа;

    где type - это любой тип данных C ++, а name - новое имя для этого типа данных.
    Это определяет другое имя для стандартного типа C ++.

    Пример:

    // C++ program to demonstrate typedef
    #include <iostream>
    using namespace std;
    // After this line BYTE can be used
    // in place of unsigned char
    typedef unsigned char BYTE ;
    int main()
    {
    BYTE b1, b2;
    b1 = 'c' ;
    cout << " " << b1;
    return 0;
    }
    Выход:
    c
    
    Хотите учиться на лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для языка и STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .