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

C++基础知识(五)

struct VS class

特性structclass
默认访问修饰符publicprivate
成员访问权限成员默认是 public成员默认是 private
继承方式默认继承方式为 public默认继承方式为 private
用途通常用于简单的数据结构或记录通常用于复杂的数据类型和封装
成员函数可以有成员函数可以有成员函数
构造函数与析构函数可定义构造函数和析构函数可定义构造函数和析构函数
支持多态支持虚函数和多态支持虚函数和多态
友元关系可以定义友元类和友元函数可以定义友元类和友元函数
模板支持支持支持

struct 和 class 在 C++ 中的主要差异如下:

  1. 默认访问权限
    struct:成员默认是 public,可以被任意地方访问。
    class:成员默认是 private,只能在内部访问,外部无法直接访问。
  2. 默认继承方式
    struct:默认继承方式为 public。
    class:默认继承方式为 private。
  3. 用途与设计意图
    struct:通常用于存储简单的数据结构,强调数据的聚合。常用于那些需要同时暴露多个数据成员的情况。
    class:通常用于实现更复杂的对象,强调封装、继承和多态性,适合实现完整的面向对象特性。
  4. 语义差异
    尽管两者在 C++ 中几乎可以互换使用,设计时更应该根据语义来选择。使用 struct 表示数据结构的聚合,使用 class 则更强调封装和数据保护。

总结
尽管 struct 和 class 在功能上非常相似,主要差异在于默认访问控制和用途。选择何者通常取决于设计意图以及对数据封装和访问控制的需求

TODO


http://www.kler.cn/a/292275.html

相关文章:

  • 基本数据类型和包装类型的区别、缓存池、自动拆箱装箱(面试题)
  • MFC中Picture Control控件显示照片的几种方式
  • jenkins用户在执行scp的时候如何做免密登录
  • 游戏引擎学习第九天
  • 金融领域先锋!海云安成功入选2024年人工智能先锋案例集
  • Unity读取Json
  • 计算机网络(三) —— 简单Udp网络程序
  • 2024年西安交通大学软件工程专业考研915真题
  • 算法练习题14——leetcode84柱形图中最大的矩形(单调栈)
  • 深度解析Linux系统的基本概念及优缺点和原理
  • COD论文笔记 ECCV2024 Just a Hint: Point-Supervised Camouflaged Object Detection
  • 解决maven中阿里云镜像仓库无法下载源码的问题
  • 华为od统一考试B卷【密钥格式化】Java 实现
  • python多进程
  • 导入word模板的数据到DB,偏自学,可自改套用
  • eureka一
  • 如何给 Java 文件打成独立的 JAR 包
  • 最基本的SELECT...FROM结构
  • HTB-Funnel(ssh端口转发与Hydra爆破)
  • blast的快速安装使用-简易版
  • Python知识点:如何使用Slack与Python进行团队协作
  • C++的四种规范的类型转换
  • 广义回归神经网络(GRNN)
  • Facebook的AI进化:如何用智能技术提升内容推荐
  • DataAccessException产生原因及解决方案
  • One-Shot Imitation Learning