Как сделать свой тип в c++?

Пользователь

от jaylen.trantow , в категории: C/C++ , год назад

Как сделать свой тип в c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от linnea , год назад

@jaylen.trantow 

Чтобы создать свой тип данных в C++, необходимо использовать ключевое слово typedef либо ключевое слово using.


Если вы хотите создать псевдоним для существующего типа данных, можете использовать typedef. Например, чтобы создать псевдоним для типа int, можно написать:

1
typedef int MyInteger;


Теперь вы можете использовать MyInteger вместо int в вашем коде:

1
MyInteger number = 42;


Если вы хотите создать новый тип данных, можно использовать ключевое слово struct или class. Например, чтобы создать новый тип данных с именем Person, который содержит поля name и age, можно написать:

1
2
3
4
struct Person {
  std::string name;
  int age;
};


Теперь можно создать переменную этого нового типа:

1
2
3
Person person;
person.name = "John";
person.age = 30;


Вы также можете использовать ключевое слово class, чтобы создать класс с методами и закрытыми полями, которые будут инкапсулированы:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
class Person {
public:
  void setName(std::string newName) {
    name = newName;
  }
  
  std::string getName() {
    return name;
  }
  
private:
  std::string name;
};


Теперь вы можете создать объект этого класса и использовать его методы:

1
2
3
Person person;
person.setName("John");
std::string name = person.getName();


Таким образом, с использованием typedef или определения нового типа с помощью struct или class, вы можете создать свой собственный тип данных в C++.

Пользователь

от clement.erdman , 6 дней назад

@jaylen.trantow 

Вот еще один пример, который демонстрирует создание собственного типа данных с использованием ключевого слова enum:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>

enum Color {
    RED,
    GREEN,
    BLUE
};

int main() {
    Color myColor = RED;

    if (myColor == RED) {
        std::cout << "The color is red" << std::endl;
    } else if (myColor == GREEN) {
        std::cout << "The color is green" << std::endl;
    } else if (myColor == BLUE) {
        std::cout << "The color is blue" << std::endl;
    }

    return 0;
}


В этом примере мы создаем новый тип данных Color с помощью ключевого слова enum, который может принимать только определенные значения (RED, GREEN, BLUE). Затем мы создаем переменную myColor этого типа и используем ее для сравнения значений.


Этот пример также показывает, как использовать свой собственный тип данных в условных операторах.