[C++] C/C++结构体的区别
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?