📅  最后修改于: 2023-12-03 14:39:58.701000             🧑  作者: Mango
在C++中,用户可以通过定义自己的数据类型来方便地组织自己的程序和数据。用户定义数据类型(User-Defined Data Types)可以让程序员抽象出更高层次的概念,从而提高代码的可读性和可维护性。以下是C++中可用的用户定义数据类型:
结构体是一种用户定义的数据类型,涵盖了不同数据类型的成员变量。结构体可以用来描述一个具有多个属性的实体。例如,一个人可以用以下方式来表示:
struct Person {
string name;
int age;
char gender;
};
在上面的代码中,Person
是一个结构体类型,有三个成员变量:name
,age
和gender
,分别表示人的名字、年龄和性别。
结构体变量的定义可以这样:
Person p1 = {"Alex", 25, 'M'};
访问结构体的成员变量可以通过.
运算符:
cout << "Name: " << p1.name << endl;
cout << "Age: " << p1.age << endl;
cout << "Gender: " << p1.gender << endl;
枚举类型是一种用户定义的数据类型,用来描述一组静态常量。枚举类型常用于替代一组字符串常量,比如:
enum Color {
RED,
GREEN,
BLUE
};
在上面的代码中,Color
是一个枚举类型,有三个枚举变量:RED
、GREEN
和BLUE
。
枚举变量可以像整数一样进行操作。例如,可以使用枚举变量作为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 Data {
int i;
float f;
char str[20];
};
在上面的代码中,Data
是一个共用体类型,有三个成员变量:i
,f
和str
。
共用体变量的定义可以这样:
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
的值,但是当把f
和str
的值修改时就会覆盖i
的值。
类是一种用户定义的数据类型,可以描述一个对象的行为和属性。一个类可以有多个对象,每个对象有自己独立的属性和方法。下面是一个简单的类的例子:
class Circle {
private:
double radius;
public:
void setRadius(double r) {
radius = r;
}
double getArea() {
return 3.14 * radius * radius;
}
};
在上面的代码中,Circle
是一个类,有一个私有成员变量radius
和两个公有函数成员setRadius
和getArea
。setRadius
是一个用来修改radius
的函数,getArea
用来计算圆的面积。
可以使用以下方法来创建一个Circle
对象:
Circle c;
c.setRadius(2.0);
cout << "Area is " << c.getArea() << endl;
以上只是四种常见的用户定义数据类型,它们可以用来描述复杂的数据结构和对象。对于大型的程序和数据,使用用户定义数据类型可以使得代码更易于理解和管理。