结构体是一种特殊形态的类
- 与类的唯一区别:类的缺省访问权限是private,结构体的缺省访问权限是public
- 结构体存在的主要原因:与C语言保持兼容
什么时候用结构体而不用类
3. 定义主要用来保存数据、而没有什么操作的类型
4. 人们习惯将结构体的数据成员设为公有,因此这时用结构体更方便
结构体的定义
struct 结构体名称 {
公有成员
protected:
保护型成员
private:
私有成员
};
结构体的初始化
如果一个结构体的全部数据成员都是公共成员,并且没有用户定义的构造函数,没有基类和虚函数(基类和虚函数将在后面的章节中介绍),这个结构体的变量可以用下面的语法形式赋初值。
类型名 变量名 = { 成员数据1初值, 成员数据2初值, …… };
例:用结构体表示学生的基本信息
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
struct Student { //学生信息结构体
int num; //学号
string name; //姓名,字符串对象
char sex; //性别
int age; //年龄
};
int main() {
Student stu = { 97001,"Lin Lin", 'F', 19 };
cout << "Num: " << stu.num << endl;
cout << "Name: " << stu.name << endl;
cout << "Sex: " << stu.sex << endl;
cout << "Age: " << stu.age << endl;
return 0;
}