struct 是 C++ 中用于轻量级数据封装的类型,默认成员 public,支持嵌套和列表初始化,定义后可像基本类型一样声明、赋值和访问成员。

结构体(struct)是 C++ 中组织相关数据的最基本方式,它允许你把多个不同类型的数据打包成一个整体,方便管理和使用。 它不是类,但语法上很像——默认成员是 public 的,不带函数也能用,适合轻量级数据封装。
struct 怎么定义?
用 struct 关键字 + 名字 + 花括号 定义,里面写成员变量(可以是任意类型,包括其他 struct):
struct Person { std::string name; int age; double height;};
定义后,Person 就成了一个新类型,和 int、double 一样可用 成员默认是 public,可以直接通过点号访问:Person p; p.age = 25; 不支持直接在定义里初始化成员值(C++11 后可在声明时给默认值,如 int age = 0;)
怎么创建和使用 struct 变量?
定义好 struct 类型后,就能像普通变量一样声明、赋值、传参:
Person a = {"Alice", 30, 165.5}; // C++11 起支持列表初始化Person b;b.name = "Bob";b.age = 28;b.height = 178.2;std::cout << a.name << " is " << a.age << " years old.n";
支持直接初始化(花括号)、逐个赋值、拷贝构造(Person c = a;) 可以作为函数参数:按值传(拷贝整个结构体)、按引用传(void print(const Person& p) 更高效) 可以作为返回值:Person getAdult() { return {"Tom", 45, 172.0}; }
struct 和 class 有啥区别?
最核心的区别只有 **默认访问权限**:
立即学习“C++免费学习笔记(深入)”;
struct 成员和继承默认是 public class 成员和继承默认是 private 除此之外,两者功能完全一致:都能有成员函数、构造函数、运算符重载、模板、继承等 习惯上,只存数据、无逻辑的用 struct;需要封装行为或隐藏实现的用 class
小技巧与注意事项
定义时加 typedef 或用 using 简化(C++11 起推荐):using Point = struct { int x, y; }; 空 struct 大小为 1 字节(避免大小为 0),用于占位或模板特化 结构体对齐会影响 sizeof 结果,编译器会自动填充字节保证内存对齐(如 int 通常按 4 字节对齐) 如果要序列化或跨平台传输,注意字节序和对齐差异,别直接 memcpy 整个 struct
基本上就这些。struct 是 C++ 的基石之一,写得少但用得多——从函数返回多个值,到定义配置、网络包、图形顶点,都离不开它。
以上就是C++结构体基本教程_C++ struct属性与使用方式的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1489673.html
微信扫一扫
支付宝扫一扫