C中的结构体和C++中结构体的不同之处:在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数。

C++中的结构体和类的异同:

一、相同之处:结构体中可以包含函数;也可以定义public、private、protected数据成员;定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数;

也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有虚函数。

二、不同之处:结构体定义中默认情况下的成员是public,而类定义中的默认情况下的成员是private的。类中的非static成员函数有this指针,(而struct中没有是错误的,一直被误导啊,经过测试struct的成员函数一样具有this指针),类的关键字class能作为template模板的关键字 即template<class T> class A{}; 而struct不可以。

实际上,C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体和类体现了数据结构和算法的结合。

C/C++结构体的区别相关推荐

  1. C和C++结构体的区别

    C和C++结构体的区别 转自:https://www.cnblogs.com/qiumingcheng/p/7814970.html 1.C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许 ...

  2. C#中类与结构体的区别

    1.在C#中结构体类型定义时,成员是不能初始化的,这样就导致了,定义结构体变量时,变量的所有成员都要自己赋值初始化.但对于类,在定义类时,就可以初始化其中的成员变量,所以在定义对象时,对象本身就已经有 ...

  3. c语言结构共用体的作用,浅谈C语言共用体和与结构体的区别

    共用体与结构体的区别 共用体: 使用union 关键字 共用体内存长度是内部最长的数据类型的长度. 共用体的地址和内部各成员变量的地址都是同一个地址 结构体大小: 结构体内部的成员,大小等于最后一个成 ...

  4. C++中类和结构体的区别

    结构体和类的唯一区别就是: 结构体和类具有不同的默认访问控制属性 即:类中,对于未指定访问控制属性的成员,其访问控制属性为私有类型(private) 结构体中,对于未指定任何访问控制属性的成员,其访问 ...

  5. C#类与结构体的区别

    C#中类(class)与结构体(stract)的区别: 1.类是引用类型,结构体是值类型: 2.结构体不支持继承,但可以实现接口,类即支持继承也能实现接口: 3.结构体中不可以声明无参的构造函数: 4 ...

  6. C++类和结构体的区别

    经测试(编译环境为VC6.0),发现C++结构体与类只有一个区别,就是类默认的成员是private,结构体默认的成员是public. 结构体可以定义public.private.protected,可 ...

  7. [绍棠_Swift] Swift中类和结构体的区别

    类和结构体有许多相同之处,也有许多不同之处. 二者区别如下: 1,类可以继承,结构体不可以 2,可以让一个类的实例来反初始化,释放存储空间,结构体做不到 3,类的对象是引用类型,而结构体是值类型.所以 ...

  8. 【C++】类与结构体的区别

    C++中结构体(struct) 我们知道C++中的 struct 对C中的 struct 进行了扩充,它不再是只能用来封装不同类型数据的数据结构了,而是拥有了更多的功能,例如:可以包含成员函数,可以继 ...

  9. C里的共同体和结构体的区别

    共用体 构造数据类型,也叫联合体 用途:使几个不同类型的变量共占一段内存(相互覆盖) 结构体是一种构造数据类型 用途:把不同类型的数据组合成一个整体-------自定义数据 结构体变量所占内存长度是各 ...

  10. matlab单元数组与结构体的区别,MATLAB中的结构体和单元数组

    MATLAB中的结构体和单元数组 一.结构: x.real=10 x.imag=5 增加字段 x.scale=1 使用struct函数 s=struct('field1',values1,'field ...

最新文章

  1. Python [9] optparse模块生成命令行帮助信息
  2. jQuery处理点击父级checkbox所有子级checkbox都选中,取消选中所有子级checkbox都取消...
  3. 实现WebMvcConfigurer接口扩展Spring MVC的功能
  4. linux终端使用python3,3 个 Python 命令行工具 | Linux 中国
  5. 谁参加了JavaScript 2018状况调查?
  6. 这个为生信学习打造的开源Bash教程真香!!(目录更新)!
  7. SSD磁盘测试不达标排查
  8. 洛谷P3648 [APIO2014]序列分割(斜率优化)
  9. 【JSP】JSP基础学习记录(二)—— JSP的7个动作指令
  10. [转载] python中dtype的使用规范_Python numpy.dtype() 使用实例
  11. get函数与getline函数
  12. 如何证明服从卡方分布_卡方分布
  13. python测验6_Python语言程序设计 - 测验6: 组合数据类型 (第6周)
  14. 《GAMES104-现代游戏引擎:从入门到实践》-05 学习笔记
  15. 【Luogu P1488】【博弈论】 肥猫的游戏
  16. sql sever 存储过程总结及实验
  17. 李彦宏发布小度在家“解锁”中国家庭市场,被称作AI性价比之王
  18. 拆长虹iho3000_(CA版)四川长虹iho-3000t晶晨s905l-b刷全网通系统教程可救砖头
  19. 石油场站三维可视化_三维bim建模_吉优赛维数字孪生可视化平台
  20. 【java】eclipse

热门文章

  1. 深度报告:芯片设计EDA 2.0时代,三大路径搞定六大挑战
  2. 拥有“上帝视角”是怎样的体验?高分多模卫星首批影像成果发布
  3. Nvidia真的收购Arm了吗?
  4. 专访王田苗:机器人是“刚需”,市场正处于逆周期增长
  5. 重磅!苹果祭出大招:史上最强 Mac 发布,iPad OS 惊艳问世
  6. 清华发布《AI芯片技术白皮书》:新计算范式,挑战冯诺依曼、CMOS瓶颈
  7. 机器学习应用的未来是什么?微型化
  8. 《Nature》重磅 | 研究员利用机器学习发现近 6000 种未知病毒
  9. 人脸识别必读的N篇文章
  10. 可视化经验分享 | 赠书