当前位置: 首页 > 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来表示具有行为的对象。不过,这只是一种习惯,并非强制规则。

相关文章:

  • day 36
  • 自定义 win10 命令
  • 人工智能数学基础实验(四):最大似然估计的-AI 模型训练与参数优化
  • 人工智能数学基础实验(五):牛顿优化法-电动汽车充电站选址优化
  • Pandas数据规整
  • Autodl训练Faster-RCNN网络--自己的数据集(二)
  • C++虚函数与类对象模型深度解析
  • binlog 解析工具——my2sql
  • 使用JSP踩过的坑
  • Double使用注意事项
  • 【编程实践】利用open3d对点云进行聚类并可视化
  • Kotlin IR编译器插件开发指南
  • 互联网大厂Java求职面试:短视频平台大规模实时互动系统架构设计
  • Eigen 库实现最小二乘算法(Least Squares)
  • Unity基础学习(九)Resources资源同步与异步加载
  • 如何在 Linux 系统中永久禁用交换分区 ?
  • 实验绘图参考-0525版(自用)
  • PostgreSQL 与 MongoDB:为您的数据项目选择合适的数据库
  • 记录第一次正式收到SCI期刊论文的审稿
  • Ubantu22.04离线安装、卸载mysql8.0.39并设置开机自启
  • 小程序制作价格/seo下拉优化
  • 网站报名系统怎么做/甘肃新站优化
  • 今日廊坊疫情最新消息/厦门seo顾问
  • 公司需要做网站/淘宝推广费用多少钱一天
  • 台州平台网站建设/国外推广都是怎么推广
  • wordpress 图片集/seo诊断方法步骤