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

C++ 定义一个结构体,用class还是struct

在C++中,struct和class都可以用来定义结构体(Structures),它们之间的主要区别在于默认的访问权限和继承方式。

struct

默认访问权限:在struct中,成员变量的默认访问权限是public。

继承方式:继承默认是public的,即派生类可以访问基类的所有成员(除非显式改变访问权限)。

class

默认访问权限:在class中,成员变量的默认访问权限是private。

继承方式:继承默认是private的,即派生类默认不能直接访问基类的所有成员,除非显式改变访问权限。

使用场景

如果你希望你的结构体中的成员变量默认就是公开的,并且你不需要从该结构体派生其他类,那么使用struct可能更合适。

如果你希望你的结构体中的成员变量默认是私有的,或者你需要从这个结构体派生其他类,那么使用class可能更合适。

示例
使用struct

struct Person {std::string name; // 默认publicint age; // 默认public
};

使用class

class Person {
private: // 可以改为public,根据需要std::string name; // 默认privateint age; // 默认private
public:void setName(const std::string& n) { name = n; }std::string getName() const { return name; }void setAge(int a) { age = a; }int getAge() const { return age; }
};

总结

选择struct还是class主要取决于你的设计需求。如果你不需要从该结构体派生其他类,并且希望成员变量默认是公开的,那么使用struct。如果你需要私有成员或从该结构体派生其他类,那么使用class。在实践中,许多开发者倾向于使用struct来表示数据记录,而使用class来表示具有行为的对象。不过,这只是一种习惯,并非强制规则。

http://www.xdnf.cn/news/644725.html

相关文章:

  • DAY35作业
  • AI 赋能心理健康预测与干预:智能技术如何成为情绪“守护者”
  • 【分库分表】理论基础
  • Python训练营打卡Day36
  • YOLO11解决方案之区域追踪探索
  • Python二级考试
  • SOC-ESP32S3部分:12-1、任务通信-队列
  • 类和对象简要小记
  • 大模型应用开发之RAG
  • 【python】OOP编程从0到1
  • 前端常见的安全问题
  • 【监控】Node Exporter 介绍及应用
  • QT6安装与概念介绍
  • 30字速成Docker安装与配置指南
  • 【Web前端】ECMAScript 6基础学习
  • HTTP协议版本的发展(HTTP/0.9、1.0、1.1、2、3)
  • MySQL并发事务问题及隔离级别演示
  • 蓝桥杯单片机答题技巧
  • DNS 入门篇
  • Arduino Uno KY-037声音传感器实验
  • 短视频矩阵系统源码部署分享
  • 维护测试监控LLM应用
  • 从厨房到储物间:Grocy 家庭的智能物资管理助手
  • CA自签名证书创建--证书链生成脚本
  • dify-plugin-daemon的.env配置文件
  • 大模型和AI工具汇总(一)
  • CMake学习笔记(六)可以在CMake的function中修改function函数体之外的变量值吗?
  • 【FastAPI】--进阶教程1
  • VS2022 安装CodeGeeX AI插件实现高效编程体验
  • 贪心算法应用:贝尔曼-福特松弛问题详解