在 C++ 的范畴里,除了 struct 结构体不支持访问权限修饰符(private、protected、public)外,已不再区分二者的其他方面语法上的差异。

因此,在 C++ 编程中,如果一个类是由 struct 来定义,说明其所有成员都可直接访问(通过.或者->)。

在使用上,与类所不同的是,结构体中的成员(无论是变量还是函数),可直接被外部访问,不存在访问权限的问题,而类相交而言,是 type-safe 的。

所以在一些情况下,在选择 struct 还是 class 来封装某一事物时,需要充分考虑其成员的访问情况。如果将其定义成 struct,既清晰地告知了编译器,也明确地向程序员传达的可放心访问的信号。

结构体(struct)与类(class)相关推荐

  1. 结构体 struct 和类 class 的比较

    C的结构体和C++结构体的区别 1.组成不同 C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数.所以C的结构体是没有构造函数.析构函数.和this指针的. 2.权限不同 C ...

  2. 【C#】结构体struct和类class的比较

    代码出自 https://blog.csdn.net/qq_42672770/article/details/112761229 文章目录 background 1.Code 2.Results 3. ...

  3. C语言 结构体 struct Cat cat1;

    引入 使用传统技术解决 需要定义多个变量或数组 结构体与结构体变量的关系示意图 类似Java类中的对象(结构体)与属性(结构体变量) 一切物体都可以看作对象(结构体) 补充:C语言数据类型 简单使用案 ...

  4. go struct 静态函数_Go语言学习笔记(四)结构体struct 接口Interface 反射reflect...

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  5. 指针、结构体、枚举类和文件

    指针 //指针变量中只能存放地址(指针) int *pointer = 100; //是不合法的,int *p=后面必须是地址变量 int a=10; int *p = &a; *p = 1; ...

  6. [ C语言 ]指针---结构体(struct)---分支语句(1)---初识C语言末尾

    文章目录 前言 一,指针 二,结构体(struct) 三,分支语句(选择结构) 总结​​​​ 前言 本篇文章主要记录指针末尾,结构体,和分支语句(选择结构) --------------------- ...

  7. linux 结构体 struct addrinfo 简介

    目录 定义 相关方法 1. getaddrinfo(const char, const char, const struct addrinfo, struct addrinfo*) 2. freead ...

  8. 结构体struct timeval 和 struct timespec的定义

    结构体struct timeval 和 struct timespec的定义均在头文件<sys/time.h>中,具体定义如下: struct timeval {long tv_sec; ...

  9. Golang结构体struct的使用(结构体嵌套, 匿名结构体等)

    转自: https://studygolang.com/articles/11313 golang中是没有class的,但是有一个结构体struct,有点类似,他没有像java,c++中继承的概念,但 ...

  10. linux sock结构体,struct socket结构体详解

    在内核中为什么要有struct socket结构体呢? struct socket结构体的作用是什么? 下面这个图,我觉得可以回答以上两个问题.  由这个图可知,内核中的进程可以通过使用struct ...

最新文章

  1. sql2000安装时报错的问题--实例挂起和267目录名无效
  2. 自已动手写控件 --- 我第一次学习写自定义控件
  3. Linux下一些实用的操作记录
  4. python 内存回收机制_【第1题】 Pythonn内存管理以及垃圾回收机制
  5. Windows2003 SQL2005解决系统Administrator密码不知道的问题
  6. 怎么确保一个集合不能被修改
  7. android bitmap drawable 互转
  8. sqlserver获得到当前游标中存在的数据行数
  9. 初学JAVA,javaoo小结
  10. jquery 设置背景
  11. Python基础语法题库
  12. java speex回声消除_Speex回声消除原理深度解析
  13. python excel行列转置_用powershell+excel行列转置三步走
  14. 使用Weka进行数据挖掘(Weka教程三)Weka数据之Instances和Instance
  15. 关于app申请软件著作权登记时软件名称命名的问题
  16. MFC入门(三)-- MFC图片/文字控件(循环显示文字和图片的小程序)
  17. vue+element 在ie和360浏览器的兼容问题
  18. Vue 动态加载public图片和图片预览例子
  19. DUM 与 SIPstack多线程
  20. 车辆动力学从入门到进阶之路(传统篇)

热门文章

  1. zabbix监控mysql内存_zabbix通过自定义脚本监控nginx,php-fpm和mysql占用内存数和进程的个数...
  2. python收集数据发邮件_Python 提取数据库(Postgresql)并邮件发送
  3. aix c语言 构造函数,错误:命名构造函数,而不是类型。使用g++4.6.1进行编译
  4. hive排序:distribute by 、sort by 、cluster by 、order by 区别
  5. android 动画之漂移,Android之自定义Drawable实现灵动的红鲤鱼动画(上篇)
  6. selenium自动化测试框架_自动化测试框架
  7. github代码管理总结
  8. Qt QT的I/O流 QT输入输出
  9. [Latex排版]之visio图转成eps的方法
  10. Tosca new project Repository as MS SQL Server