C++被称为“C with class”,可见在C++中class是多么重要,与class类似的一个结构就是struct了,struct最早是在C语言中出现的,在C++中对struct的功能也进行了扩展。

class :

  • public(公有):在类内外、派生类中都可被访问

  • protected(保护):希望与派生类共享但是不想被公共访问所使用的访问权限。在基类和派生类中(派生类的友元也可以访问)可以被访问,在类外无法访问

  • private(私有):只有在类内可被访问,类外和子类无法访问

注意事项:

  • 成员不写访问属性时,类的默认访问属性为private

  • 与结构体的不同:结构体默认属性为public

下面就来说一说struct和class的区别吧:

1、默认的继承权限

struct默认是公有继承(public),class默认是私有继承(private)

2、关于默认访问权限

class中默认的成员访问权限是private的,而struct中则是public的。

3、关于大括号初始化问题

struct在C语言中:
在C语言中,我们知道struct中是一种数据类型,只能定义数据成员,不能定义函数,这是因为C语言是面向过程的,面向过程认为数据和操作是

C++:05---class和struct相关推荐

  1. 深入理解并行编程-分割和同步设计(四)

    原文链接    作者:paul    译者:谢宝友,鲁阳,陈渝 图1.1:设计模式与锁粒度 图1.1是不同程度同步粒度的图形表示.每一种同步粒度都用一节内容来描述.下面几节主要关注锁,不过其他几种同步 ...

  2. 深入理解并行编程-分割和同步设计(五)

    原文链接    作者:paul    译者:谢宝友,鲁阳,陈渝 并行快速路径 细粒度的设计一般要比粗粒度的设计复杂.在许多情况,绝大部分开销只由一小部分代码产生[Knu73].所以为什么不把精力放在这 ...

  3. go扩展ticker实现优雅起停

    目录 ticker源码分析 关键源码 ticker核心源码 startTimer stopTimer sentTime 核心源码 源码解读 分析 注意事项 ticker优化关闭思路 MyTicker代 ...

  4. 01 二叉树的BFS(广度、层次或水平遍历实现)【Binary Tree 二叉树】

    二叉树的遍历分为BFS和DFS两种大类 下面完整实现BFS遍历二叉树 * 例如二叉树* 1* / \* 2 3* /\* 4 5 BFS遍历结果:1-2-3-4-5 具体的代码实现: 方法一.采用递归 ...

  5. 程序员编程艺术:第九章、闲话链表追赶问题

    程序员编程艺术:第九章.闲话链表追赶问题 作者:July.狂想曲创作组. 出处:http://blog.csdn.net/v_JULY_v . 前奏     有这样一个问题:在一条左右水平放置的直线轨 ...

  6. ML—AdaBoost(二)—MATLAB代码

    华电北风吹 天津大学认知计算与应用重点实验室 修改日期:2015/7/27 在网上看了几篇AdaBoost的介绍后,感觉网上介绍的都不好,不能够让人完全理解,因此就下载了一个外国人写的代码,总算透彻的 ...

  7. Struct 和 Class 性能有差异吗?自己测试

    一直以来,我总是听到关于在字段较少时,使用结构将获得更佳的性能,我对此一直深信不已,今天因为需要写一个性能要求较高的程序,所以特地写一段测试程序来验证是不是真的正确.     我建立了1个结构以及2个 ...

  8. [译]Vulkan教程(05)Instance

    [译]Vulkan教程(05)Instance Creating an instance 创建一个instance The very first thing you need to do is ini ...

  9. Python天天美味(13) - struct.unpack

    转载自:http://www.cnblogs.com/coderzh/archive/2008/05/04/1181462.html Python中按一定的格式取出某字符串中的子字符串,使用struc ...

  10. golang struct 转map 及 map[string]*Struct 初始化和遍历

    package mainimport ("encoding/json""errors""fmt""reflect"&qu ...

最新文章

  1. vue element的若干问题
  2. 太 6 了!区块链包包、疫情防控大脑……程序员这样玩转区块链!
  3. OpenCASCADE:Foundation Classes数据类型
  4. c语言提高 17,C语言提高-第17讲: 一维数组的定义和引用(数组大折腾)
  5. 移动端点击屏幕按钮闪现的灰色底框
  6. 循环神经网络 递归神经网络_了解递归神经网络中的注意力
  7. tf.transpose
  8. 分支限界算法c语言_算法学习计划
  9. 程序员干货学习资源(持续更新)
  10. ARP表和MAC表的区别
  11. MATLAB Codesys,Matlab程序导入Codesys PLC教程
  12. Python学习之文件13
  13. ROS 问题(topic types do not match、topic datatype/md5sum not match、msg xxx have changed. rerun cmake)
  14. 爬虫干货 | 爬虫IP代理模块介绍及实战
  15. DELL服务器 R740的风扇设置
  16. ajax——请求消息(request)和响应消息(response)
  17. layer的anim动画
  18. mitmproxy 抓包神器-1.环境准备与抓取浏览器请求
  19. 一文实现0~9手写数字识别系统
  20. Castor简单介绍实体类和xml互转

热门文章

  1. bbb sd6 无e2 修改
  2. getsockname与getpeername
  3. 深入浅出单实例Singleton设计模式
  4. 客户机和服务器在s7通信中各有什么作用,哪些通信口可以进行 Modbus TCP 通讯,作为 Modbus 服务器的 SIMATIC S7 CPU 可以...
  5. C语言依次显示图片,c语言能显示图片吗
  6. efishell无法开机shell_开机出现efi shell卡住不动了解决方法全集
  7. 26享元模式(Flyweight Pattern)
  8. ABP入门系列(12)——如何升级Abp并调试源码
  9. 一步步编写操作系统 30 cpu的分支预测简介
  10. php病毒图片后缀名,脚本图片类后门病毒的完美使用方法