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.mzph.cn/news/878735.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

J.U.C Review - CopyOnWrite容器

文章目录 什么是CopyOnWrite容器CopyOnWriteArrayList优点缺点源码示例 仿写:CopyOnWriteMap的实现注意事项 什么是CopyOnWrite容器 CopyOnWrite容器是一种实现了写时复制(Copy-On-Write,COW)机制的并发容器。在并发场景中&#…

半导体产业核心环节有哪些?2024年中国半导体产业研究报告大揭秘!

半导体指常温下导电性能介于导体与绝缘体之间的材料。半导体应用在集成电路、消费电子、通信系统、光伏发电、照明应用、大功率电源转换等领域。半导体产业经济则是指以半导体产品为核心的经济活动,包括芯片设计、制造、封装测试及应用等。它是全球经济的支柱&#…

【mysql】mysql修改sql_mode之后无法启动

现象:修改后mysql无法启动,不报错 原因:MySQL在8以后sql_mode已经取消了NO_AUTO_CREATE_USER这个关键字。去掉这个关键字后,启动就可以了 修改前: sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR…

在线演示文稿应用PPTist本地化部署并实现无公网IP远程编辑PPT

文章目录 前言1. 本地安装PPTist2. PPTist 使用介绍3. 安装Cpolar内网穿透4. 配置公网地址5. 配置固定公网地址 前言 本文主要介绍如何在Windows系统环境本地部署开源在线演示文稿应用PPTist,并结合cpolar内网穿透工具实现随时随地远程访问与使用该项目。 PPTist …

C#编程语言及.NET 平台快速入门指南

Office Word 不显示 Citavi 插件,如何修复?_citavi安装后word无加载项-CSDN博客 https://blog.csdn.net/Viviane_2022/article/details/128946061?spm1001.2100.3001.7377&utm_mediumdistribute.pc_feed_blog_category.none-task-blog-classify_ta…

CSS选择器:一文带你区分CSS中的伪类和伪元素!

一、伪类选择器 1、什么是伪类选择器 伪类选择器,顾名思义,是一种特殊的选择器,它用来选择DOM元素在特定状态下的样式。这些特定状态并不是由文档结构决定的,而是由用户行为(如点击、悬停)或元素的状态&a…

Java SpringBoot构建传统文化网,三步实现信息展示,传承文化精髓

✍✍计算机毕业编程指导师** ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java…

大道至简,大厂官网基本都走简洁化设计路线。

「大道至简」是一种设计理念,强调设计应该追求简洁、直观、易用,而不是过多的修饰和繁琐的细节。 对于大厂的官网来说,简洁化设计路线的选择可能有以下几个原因: 1. 更好的用户体验: 简洁的设计可以让用户更容易地理…

NTFS硬盘支持工具Paragon NTFS for Mac 15.4.44 中文破解版

Paragon NTFS for Mac 15.4.44 中文破解版是一个底层的文件系统驱动程序,专门开发用来弥合Windows和Mac OS X之间的不兼容性,通过在Mac OS X系统下提供对任何版本的NTFS文件系统完全的读写访问服务来弥合这种不兼容性。为您轻松解决Mac不能识别Windows NTFS文件难题…

【深度学习】线性回归的从零开始实现与简洁实现

前言 我原本后面打算用李沐老师那本《动手学深度学习》继续“抄书”,他们团队也免费提供了电子版(https://zh-v2.d2l.ai/d2l-zh-pytorch.pdf)。但书里涉及到代码,一方面展示起来不太方便,另一方面我自己也有很多地方看不太懂。 这让我开始思…

Pepper佩盼尔wordpress模板

Pepper佩盼尔WordPress模板是一款专为追求简洁、现代和专业外观的网站设计者和开发者打造的高品质主题。它以简站为主题,强调“让建网站更简单”的理念,旨在为用户提供一个易于使用、功能丰富的平台来构建他们的在线业务或个人网站。 模板特点包括&…

手机玩黑神话悟空二周目 GameViewer远程助你手机畅玩黑神话悟空 解锁全成就全收集

用手机摸鱼完成黑神话悟空二周目全收集、成就全解锁,实现随时随地玩黑神话悟空,你可以用网易GameViewer远程。 这款远程控制软件专为游戏玩家打造,不管你是上班族,还是学生党,都可以用它在手机、平板上玩黑神话悟空&am…

谈一谈JVM的GC(垃圾回收)

JVM(Java Virtual Machine)的GC(Garbage Collection,垃圾回收)是Java语言的一个重要特性,它负责自动管理内存,释放那些不再被使用的对象所占用的内存空间。以下是对JVM GC的详细介绍&#xff1a…

风机设计基础

目录 1、风机分类按气体出口压力(或升压)来进行风机分类按风机全压来进行分类 2、风机定律及效率、功率、压力计算风机轴功率与扭矩关系:风机全压、静压效率计算公式:全压、动压、静压计算公式: 3、风机噪声1、离散噪声…

修改jupyter notebook 默认浏览器(不动配置文件,改系统默认浏览器)

最开始把联想浏览器切到EDGE就是用的修改系统的默认浏览器。不知怎么的现在搜到的方法都是在说修改配置文件😓。 不想动配置文件,平时对默认浏览器没有特殊要求的,可以用这个方法。 这里是把默认浏览器改成联想浏览器,电脑也是联…

低代码平台赋能:烟花鞭炮企业数字化转型新篇章

随着数字化转型的浪潮席卷全球,传统制造业正面临着前所未有的变革机遇。烟花鞭炮行业,作为承载深厚文化底蕴与独特工艺的传统产业,也不例外。近年来,我国政府高度重视中小企业数字化转型,出台了一系列扶持政策&#xf…

基于大数据的电商平台电脑销售数据分析系统

温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 随着电子商务的蓬勃发展,各大电商平台积累了海量的商品数据。如何从这些数据中提取有价值的信息,对于商家来说至关重要。本项目利用网络爬虫技术从京东电商平台采集各类品牌…

春秋云镜(OpenSSH)·CVE-2023-51385

靶标介绍: OpenSSH 是使用 SSH 协议进行远程登录的连接工具。在OpenSSH 9.6版本之前的ssh中,如果用户名或主机名中含有shell元字符(如 | "等),并且ssh_config中ProxyCommand、LocalCommand指令或"match exe…

Python和Java及MATLAB和CUDA显微镜导图

🎯要点 交互式设备控制和图像处理图像背景和阴影校正可视化萤光团位置算法和读取光学图像读写转换显微镜图像生物医学细胞图像分析荧光图像算法计算亮度数据和模拟表征新型染料和缓冲液强度估计细菌图像分析扫描透射和高分辨率透射图像模拟多模态成像分割可视化透射…

Hive服务部署及Datagrip工具使用

目录 Hive服务部署 Hiveserver2服务 1)用户说明 2)Hiveserver2部署 (1)Hadoop端配置 (2)Hive端配置 3)测试 (1)启动Hiveserver2 (2)使用命…