📜  C++中的用户定义数据类型(1)

📅  最后修改于: 2023-12-03 14:39:58.701000             🧑  作者: Mango

C++中的用户定义数据类型

在C++中,用户可以通过定义自己的数据类型来方便地组织自己的程序和数据。用户定义数据类型(User-Defined Data Types)可以让程序员抽象出更高层次的概念,从而提高代码的可读性和可维护性。以下是C++中可用的用户定义数据类型:

结构体(struct)

结构体是一种用户定义的数据类型,涵盖了不同数据类型的成员变量。结构体可以用来描述一个具有多个属性的实体。例如,一个人可以用以下方式来表示:

struct Person {
    string name;
    int age;
    char gender;
};

在上面的代码中,Person是一个结构体类型,有三个成员变量:nameagegender,分别表示人的名字、年龄和性别。

结构体变量的定义可以这样:

Person p1 = {"Alex", 25, 'M'};

访问结构体的成员变量可以通过.运算符:

cout << "Name: " << p1.name << endl;
cout << "Age: " << p1.age << endl;
cout << "Gender: " << p1.gender << endl;
枚举类型(enum)

枚举类型是一种用户定义的数据类型,用来描述一组静态常量。枚举类型常用于替代一组字符串常量,比如:

enum Color {
    RED,
    GREEN,
    BLUE
};

在上面的代码中,Color是一个枚举类型,有三个枚举变量:REDGREENBLUE

枚举变量可以像整数一样进行操作。例如,可以使用枚举变量作为switch语句的参数:

Color color = RED;
switch (color) {
    case RED:
        cout << "Color is red." << endl;
        break;
    case GREEN:
        cout << "Color is green." << endl;
        break;
    case BLUE:
        cout << "Color is blue." << endl;
        break;
}
共用体(union)

共用体是一种用户定义的数据类型,可以将多个不同数据类型的成员变量定义在同一块内存中。共用体变量只能同时存储其中一个成员变量的值,但这个成员变量可以是任意类型,比如:

union Data {
    int i;
    float f;
    char str[20];
};

在上面的代码中,Data是一个共用体类型,有三个成员变量:ifstr

共用体变量的定义可以这样:

Data data;
data.i = 10;
cout << "i = " << data.i << endl;

data.f = 3.14;
cout << "f = " << data.f << endl;

strcpy(data.str, "hello");
cout << "str = " << data.str << endl;

其中,变量data最初存储的是i的值,但是当把fstr的值修改时就会覆盖i的值。

类和对象

类是一种用户定义的数据类型,可以描述一个对象的行为和属性。一个类可以有多个对象,每个对象有自己独立的属性和方法。下面是一个简单的类的例子:

class Circle {
private:
    double radius;
public:
    void setRadius(double r) {
        radius = r;
    }
    double getArea() {
        return 3.14 * radius * radius;
    }
};

在上面的代码中,Circle是一个类,有一个私有成员变量radius和两个公有函数成员setRadiusgetAreasetRadius是一个用来修改radius的函数,getArea用来计算圆的面积。

可以使用以下方法来创建一个Circle对象:

Circle c;
c.setRadius(2.0);
cout << "Area is " << c.getArea() << endl;

以上只是四种常见的用户定义数据类型,它们可以用来描述复杂的数据结构和对象。对于大型的程序和数据,使用用户定义数据类型可以使得代码更易于理解和管理。