在c++中,结构体使用struct关键字定义,它不仅可以包含成员变量,还能定义成员函数、构造函数以及设置访问权限。理解struct的写法和它与class的区别,对写出清晰的c++代码很有帮助。

c++中如何定义结构体
使用struct关键字即可定义一个结构体类型,成员默认是public,可以在结构体中写函数。
#include <iostream>
#include <string>
struct Student {
std::string name; // 姓名,默认public
int age; // 年龄,默认public
// 结构体中的成员函数
void show() {
std::cout << name << " is " << age << " years old" << std::endl;
}
};
int main() {
Student s;
s.name = "Tom";
s.age = 18;
s.show();
return 0;
}
struct与class的主要区别
在c++里,struct和class几乎是一回事,唯一语言和语义上的默认差异集中在访问控制和继承方式上。
1. 默认访问权限不同
struct的成员默认是public,class的成员默认是private。
struct A {
int x; // 默认public
};
class B {
int x; // 默认private
};
2. 默认继承方式不同
struct默认公有继承,class默认私有继承。
struct Base {};
struct D1 : Base {}; // 公有继承
class D2 : Base {}; // 私有继承
3. 使用习惯上的区别
虽然语法上struct能做class能做的一切,但一般习惯用struct表示纯数据类型,用class表示需要封装行为的对象。
对比总结
| 对比项 | struct | class |
|---|---|---|
| 默认成员访问 | public | private |
| 默认继承方式 | public | private |
| 常见用途 | 数据聚合 | 封装对象 |
小结
定义c++结构体很简单,用struct加变量和函数即可。struct和class核心区别只是默认public和private,以及继承默认方式不同。写代码时按语义选择,能让项目更好维护。