C++ 的自定义数据类型(结构体、类)如何定义和使用?
C++ 自定义数据类型:结构体与类的定义和使用
在 C++ 编程中,自定义数据类型是一项非常重要的技能。它允许我们根据实际需求创建新的数据类型,从而更方便地组织和管理数据。其中,结构体和类是两种常用的自定义数据类型,下面我们就来详细了解一下它们的定义和使用。
结构体的定义与使用
结构体是一种可以将不同类型的数据组合在一起的数据类型。通过结构体,我们可以创建一个包含多个成员的新类型。
结构体的定义
结构体的定义使用 struct
关键字,基本语法如下:
struct 结构体名称 {
数据类型 成员1;
数据类型 成员2;
// 可以有更多成员
};
例如,我们定义一个表示学生信息的结构体:
struct Student {
string name;
int age;
float score;
};
在这个结构体中,我们定义了三个成员:name
(学生姓名)、age
(学生年龄)和 score
(学生成绩)。
结构体的使用
定义好结构体后,我们可以创建结构体变量,并访问其成员。例如:
#include <iostream>
#include <string>
using namespace std;
struct Student {
string name;
int age;
float score;
};
int main() {
Student s;
s.name = "张三";
s.age = 20;
s.score = 85.5;
cout << "姓名: " << s.name << endl;
cout << "年龄: " << s.age << endl;
cout << "成绩: " << s.score << endl;
return 0;
}
在上述代码中,我们创建了一个 Student
类型的变量 s
,并为其成员赋值。然后通过 .
运算符访问结构体成员并输出信息。
类的定义与使用
类是 C++ 中面向对象编程的核心概念,它不仅可以包含数据成员,还可以包含成员函数。
类的定义
类的定义使用 class
关键字,基本语法如下:
class 类名 {
private:
// 私有成员
数据类型 成员1;
数据类型 成员2;
public:
// 公有成员函数
返回类型 函数名(参数列表);
// 可以有更多成员函数和数据成员
};
例如,我们定义一个表示矩形的类:
class Rectangle {
private:
float length;
float width;
public:
void setDimensions(float l, float w) {
length = l;
width = w;
}
float getArea() {
return length * width;
}
};
在这个类中,length
和 width
是私有数据成员,setDimensions
和 getArea
是公有成员函数。
类的使用
定义好类后,我们可以创建类的对象,并调用其成员函数。例如:
#include <iostream>
using namespace std;
class Rectangle {
private:
float length;
float width;
public:
void setDimensions(float l, float w) {
length = l;
width = w;
}
float getArea() {
return length * width;
}
};
int main() {
Rectangle rect;
rect.setDimensions(5, 3);
cout << "矩形的面积是: " << rect.getArea() << endl;
return 0;
}
在上述代码中,我们创建了一个 Rectangle
类的对象 rect
,并调用 setDimensions
函数设置矩形的长和宽,然后调用 getArea
函数计算并输出矩形的面积。
结构体与类的区别
结构体和类在语法上非常相似,但它们有一个重要的区别:结构体的成员默认是公有的,而类的成员默认是私有的。这意味着在结构体中,我们可以直接访问其成员;而在类中,如果成员是私有的,我们需要通过公有成员函数来访问。
总之,结构体和类是 C++ 中非常实用的自定义数据类型,它们可以帮助我们更好地组织和管理数据,提高代码的可读性和可维护性。在实际编程中,我们可以根据具体需求选择使用结构体或类。