当前位置: 首页 > news >正文

C++(29):结构体

目录

一、结构体的基本概念

1. 定义与作用

2. 与 class 的区别

二、结构体的定义与使用

1. 基本语法

2. 初始化与访问

3. 输入

三、结构体的高级特性

1. 成员函数

2. 构造函数

3. 运算符重载

四、结构体的内存布局

1. 内存对齐(Alignment)

2. 位域(Bit Fields)

五、结构体的特殊用法

1. 匿名结构体

2. 结构体嵌套

六、结构体与面向对象编程

1. 继承

2. 多态

七、结构体与标准库的交互

1. 作为容器元素

2. 作为哈希表键

八、最佳实践与注意事项


一、结构体的基本概念

1. 定义与作用
  • 结构体struct)是一种用户自定义的复合数据类型,用于将多个不同类型的变量组合成一个逻辑单元。

  • 核心用途:数据聚合、简化复杂数据管理、面向对象编程的轻量化实现。

2. 与 class 的区别
特性structclass
默认访问权限publicprivate
默认继承权限publicprivate
惯用场景数据聚合(无/简单行为)封装数据与复杂行为

二、结构体的定义与使用

1. 基本语法

        结构体是一个可以包含多种数据类型的容器,包含的数据可以自定义。

struct 结构体名 {数据类型 成员1;数据类型 成员2;// ... 
};  // 注意分号不能省略

示例

struct Node {int id;string name;int yuwen;
};
2. 初始化与访问
// 默认初始化(成员值不确定)
Node n; // 访问成员
n.id = 1;// 初始化方式1Node n;n.id = 1;n.name = "xiaoli";n.yuwen = 88;cout << n.id << ' ' << n.name << ' ' << n.yuwen << '\n';// 初始化方式2Node p1 = { 1, "xiaoli",88 };cout << p1.id << ' ' << p1.name << ' ' << p1.yuwen << '\n';Point p2 {30, 40};              // 部分初始化(未初始化的成员为默认值)

 

3. 输入
// 定义学生结构体(建议更明确的命名如 Student)
struct Node {                //  命名int id;         // 学生学号string name;    // 学生姓名int yuwen;      // 语文成绩
} stu[1000];        //  全局固定大小数组(存在设计缺陷)int main() {int n;cout << "请输入学生人数:" << endl;cin >> n;       // 未校验输入合法性// 输入循环(存在数组越界风险)for (int i = 1; i <= n; i++) {  /stu[i].id = i;      

相关文章:

  • SpringBoot Day_03|数据校验|异常处理|日志级别|定时器
  • 位运算及其算法
  • 并发编程 之 可见性、原子性、volatile、synchronized、Java内存模型的深入剖析
  • Google机器学习实践指南(梯度下降篇)
  • 裸机任务调度框架、DMA、空闲中断
  • Linux安装SRILM
  • HCIP(广域网)
  • 养生指南:五维守护身心健康
  • Spring Boot 注解 @ConditionalOnMissingBean是什么
  • 【Bluedroid】蓝牙 HID Host connect全流程源码解析
  • 通过云服务器实现异地组网 部署WireGuard
  • LeetCode Hot100 (双指针)
  • F5《2025年应用战略现状》报告:AI 落地加速,企业战略从讨论迈向行动
  • 【风控】模型算法区分度指标KS
  • 【C++进阶篇】红黑树的实现(赋源码)
  • 【软件使用】RSS(Really Simple Syndication)
  • 养生指南:五维提升健康品质
  • 重拾童年,用 CodeBuddy 做自己的快乐创作者
  • S7-1500PLC通过工艺对象实现V90总线伺服定位控制(105报文)
  • JavaWeb Web基础
  • 网站建设意见建议/搜索引擎seo如何优化
  • 濮阳房产网站建设/彩虹云商城网站搭建
  • 望野古诗拼音/什么是seo
  • 武汉专业制作网页的公司/企业seo优化服务
  • 网站正在建设中亚洲/广东的seo产品推广服务公司
  • 五金商城网站建设注意/培训师资格证怎么考