结构体
虽然在c++中,已经提供了很多种的基础数据类型。但是,即使内置再多的数据类型,也不可能总是能够很好的表达所有的用户需求。因此,必须要让用户能够自己定义数据类型。结构体就是一种可以自行定义的数据类型,结构体中可以存放一个对象的很多种信息。
结构体的使用
使用关键字struct,定义结构体
#include <iostream>
#include <string>
using namespace std;
int main()
{
struct student
{
string name;
int age;
double score;
};
// 如果在结构体中只定义了共有的数据成员
// 那么可以按照数据成员的顺序,像这样对结构体进行初始化
student sun = {"孙悟空", 888, 520.1314};
cout << "sun.name: " << sun.name << endl;
cout << "sun.age: " << sun.age << endl;
cout << "sun.score: " << sun.score << endl;
}
如上所示,在使用结构体的时候,只要通过.运算符,就可以取出对象对应的信息。
结构体和类的关系
在c++中,结构体和类其实是一样的。只有默认的访问控制属性不同。结构体的默认访问控制属性为共有,而类的默认访问控制属性为私有。这句话的意思是,如果你不做任何指定的话,那么定义的结构体成员都是共有的,类的成员都是私有的。
那么,既然类是完全可以代替结构体的,结构体还有使用的必要么?事实上,不使用结构体,确实不会造成任何影响,但是,如果观察一下标准库,会发现其实结构体的使用,还是挺多的。所以也可以将其归为代码风格问题。正如我一直所说的那样,c++是非常自由的语言,因此你可以自由的选择,你是否希望使用结构体,而无需为此纠结。
点击查看全部c++教程
|