c++的结构体
时间: 2023-06-22 13:22:12 浏览: 49
C++中的结构体是一种自定义的数据类型,可以将多个不同的数据类型组合在一起,形成一个新的数据类型。结构体的定义使用关键字`struct`,并且可以在结构体中定义成员变量和成员函数。以下是一个简单的结构体定义示例:
```c++
struct Person {
std::string name;
int age;
char gender;
void printInfo() {
std::cout << "Name: " << name << ", Age: " << age << ", Gender: " << gender << std::endl;
}
};
```
在上面的示例中,我们定义了一个名为`Person`的结构体,它有三个成员变量:`name`、`age`和`gender`,其中`name`是一个`std::string`类型,`age`是一个整数类型,`gender`是一个字符类型。我们还定义了一个名为`printInfo`的成员函数,用于打印`Person`对象的信息。
我们可以使用以下方式创建一个`Person`对象并访问其成员变量和成员函数:
```c++
Person p;
p.name = "Tom";
p.age = 20;
p.gender = 'M';
p.printInfo(); // 输出:Name: Tom, Age: 20, Gender: M
```
相关问题
c++结构体题型
C++中的结构体(struct)是一种自定义数据类型,可以将不同数据类型的变量打包成一个整体。以下是一个C++结构体的例子:
```c++
struct Person {
string name;
int age;
float height;
};
```
这个结构体定义了一个人的基本信息,包括姓名(name)、年龄(age)和身高(height)。可以通过以下方式定义结构体变量并初始化:
```c++
Person p1 = {"Tom", 25, 1.75};
```
也可以通过以下方式访问结构体变量的成员:
```c++
cout << "Name: " << p1.name << endl;
cout << "Age: " << p1.age << endl;
cout << "Height: " << p1.height << endl;
```
C++结构体经常用于数据结构、面向对象编程等方面,以下是一些结构体的常见应用题型:
1. 定义一个结构体表示学生的基本信息,包括姓名、学号、年龄、性别等,然后定义一个数组存储多个学生的信息,计算平均年龄和男女比例等。
2. 定义一个结构体表示图书的基本信息,包括书名、作者、出版社、价格等,然后定义一个链表存储多本书的信息,可以实现添加、删除、查找、排序等操作。
3. 定义一个结构体表示二维坐标系中的点,包括横坐标和纵坐标,然后实现两点之间的距离计算、点的平移旋转等操作。
4. 定义一个结构体表示复数,包括实部和虚部,然后实现复数的加减乘除、共轭等操作。
5. 定义一个结构体表示日期,包括年、月、日,然后实现日期的加减、比较等操作。
c++结构体套结构体
下面是一个C++结构体套结构体的例子:
```c++
#include <iostream>
using namespace std;
// 定义内部结构体
struct Date {
int year;
int month;
int day;
};
// 定义外部结构体
struct Student {
string name;
int age;
Date birthday; // 内部结构体作为外部结构体的成员
};
int main() {
// 创建一个学生对象
Student stu = {"Tom", 18, {2003, 1, 1}};
// 输出学生信息
cout << "Name: " << stu.name << endl;
cout << "Age: " << stu.age << endl;
cout << "Birthday: " << stu.birthday.year << "-" << stu.birthday.month << "-" << stu.birthday.day << endl;
return 0;
}
```
在上面的例子中,我们定义了两个结构体,一个是内部结构体`Date`,表示日期,另一个是外部结构体`Student`,表示学生。在`Student`结构体中,我们将`Date`结构体作为一个成员变量,表示学生的生日。在`main`函数中,我们创建了一个学生对象`stu`,并初始化了它的成员变量。最后,我们输出了学生的信息,包括姓名、年龄和生日。