结构体与类

结构体

结构体是种用户自定义的数据类型,用于将不同类型的数据组合,与类相似,允许定义成员变量和成员函数

  • 轻量级 相比于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();
}
posted @   NAGISB  阅读(7)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示