结构体与类
结构体
结构体是种用户自定义的数据类型,用于将不同类型的数据组合,与类相似,允许定义成员变量和成员函数
- 轻量级 相比于Class,结构体语法更简洁,适合小型数据对象
- 简单数据封装 适合封装多种类型的简单数据,通常用于数据的存储
- 结构体对象 支持构造函数、成员函数和访问权限控制,相当于其余哈希对象
结构体与类
在C++中,结构体(Struct)和类(Class)非常相似,唯个区别在于默认的访问权限(非修饰符)
- Struct 默认的成员和继承是Public
- Class 默认的成员和继承是Private
结构体与typedef
为结构体类型定义别名, 之后无需显式声明Struct
#include <iostream>
#include <string>
using namespace std;
// 声明结构体类型 Books
typedef struct Books
{
string title;
string author;
string subject;
int book_id;
// 构造函数
Books(string t,string a,string s,int id) //this.title=t 等价于 title(t)
: title(t),author(a),subject(s),book_id(id) {}
}Books; //可选参数作为typedef的结构体别名
// 打印书记信息函数
void printBookInfo(const Books& book) {
cout << "书籍标题:" << book.title << endl;
cout << "书籍作者:" << book.author << endl;
cout << "书籍类目:" << book.subject << endl;
cout << "书籍 ID:" << book.book_id << endl;
}
int main()
{
Books book1("C++教程","Nagisb","程序语言",123456);
Books book2("CSS教程","Nagisb","前端技术",123456);
printBookInfo(book1);
printBookInfo(book2);
}
结构体传参
形参定义为结构体引用,避免不必要的拷贝
void printBookByRef(const Books& book) {
book.printInfo();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?