C/C++结构体的区别

>_<: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++中的结构体和类体现了数据结构和算法的结合。

转载自:http://www.cnblogs.com/this-543273659/archive/2011/07/18/2109834.html

[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. NA实战视频学习笔记(第一课)
  2. JMeter 将上一个请求的结果作为下一个请求的参数——使用正则提取器(转载)...
  3. Window server 补丁修复及补丁回滚
  4. Java+Selenium3.3.1环境搭建
  5. Add Binary
  6. Google Play
  7. Ubuntu20.04下面运行applet与freemind部署到web上(调研+找到替换方案)
  8. Android开发之解决ListView和ScrollView滑动冲突的方法
  9. 用VC写Assembly代码(7)--在Visual C++中使用内联汇编
  10. 大数据职业理解_数据分析师真有那么好?其实正在面临3大职业困境
  11. springboot整合mongodb changestream
  12. Github上好的Android开源框架
  13. (20)Linux_C_进程通信(IPC)函数
  14. 宿舍物联网门锁系统之个人小程序注册
  15. 利用python做薪酬管理_HRD告诉你,6个薪酬体系策略做好薪酬管理
  16. 哪几款蓝牙耳机好用?2022年最值得买的十款蓝牙耳机盘点
  17. HTML粒子旋涡特效代码
  18. 采用DDS设计信号发生器
  19. 【入门嵌入式系统】基础知识梳理总结
  20. H5研究一:定制一个最简单的H5 视频播放器video/video

热门文章

  1. 计算机网络应用基础_学习笔记之《计算机网络》概述
  2. ffmpeg拉流设置暂停_解决ffmpeg拉流转发频繁丢包问题max delay reached. need to consume packet...
  3. ue4如何恢复初始状态_UnrealEngine4初始化流程
  4. 自动控制原理概念梳理(脑图)
  5. 力扣-剑指Offer-57 和为s的连续正数序列
  6. 蓝桥杯2017年第八届C/C++省赛B组第三题-承压计算
  7. PTA 程序设计天梯赛(81~100题)
  8. 7-7 旅游规划 (25 分)
  9. Linux驱动设置log打印开关
  10. 企业微信发送应用消息的实现