比较这三者是因为C、C++、C#这三者存在着一定的血缘关系,而他们三者都有的struct却有很大的不同。

功能

  • C中的struct是最简单的。只能有成员变量而不能有成员函数。
  • C++和C#中都支持,而且支持很多其他的特性。C++中的struct和class没有太大功能上的差别。
  • C#中struct可以有构造函数、常量、字段、方法、属性、索引器、运算符、事件和嵌套类型等特性。

可见性

  • C中没有可见性的概念,到处都可见。
  • C++中struct默认是公有继承,所以成员可见性是public。
  • C#中struct的成员默认为private。

和class的区别

  • C当然无从谈起。
  • C++中的struct除了默认可见性和class不同,其他的差别很小。比如可以有继承甚至多重继承。
  • C#中struct限制较多,不可以继承,但可以实现接口。不可以声明无参构造函数和析构函数。C#中所有结构都直接继承自 System.ValueType,后者继承自 System.Object。C#中的struct是值类型,而class是引用类型。

参考链接

[1] http://blog.csdn.net/yangzhiloveyou/article/details/8536793
[2] http://hi.baidu.com/hj11yc/item/902b8b2abfa226caee10f188
[3] http://msdn.microsoft.com/zh-cn/library/ah19swz4.aspx
[4] http://msdn.microsoft.com/zh-cn/library/saxz13w4.aspx

最新文章

  1. Python-13-堡垒机开发
  2. thinkphp标签
  3. I/O优化篇
  4. linux下google chrome浏览器字体修改
  5. 【转】C# 子窗体如何调用父窗体的方法
  6. Java开发WebService的几种方法--转载
  7. windows service 安装和卸载指令
  8. QPS、PV和需要部署机器数量计算公式(转)
  9. .NET Web后台动态加载Css、JS 文件,换肤方案
  10. 【itclx面向对象二】窥探itcl面向编程源码
  11. python 【第三篇】:函数及参数
  12. github import repository创建github仓库
  13. win10下vagrant+centos7 rails虚拟开发机配置流程
  14. mysql 存在索引但不能使用索引的典型场景
  15. k8s部署使用Dashboard(十)--技术流ken
  16. docker技术之基本命令
  17. P1198 最大数 线段树水题
  18. ruby学习-字符串
  19. HTTP 错误 401.3 - Unauthorized asp.net mvc 图片,css,js没有权限访问
  20. Python 实现数据库更新脚本的生成

热门文章

  1. malloc,alloc,realloc之间的相似与区别
  2. AtCoder Beginner Contest 052
  3. 【转】Js 数组转JSON格式
  4. Python学习笔记(快捷键)
  5. VRTK3.3.0-003发出一条简单射线和监听
  6. Sublime Text 快捷键的使用
  7. 字符串前面u,r,b
  8. Spring @Import 注解
  9. Python内建函数二
  10. Educational Codeforces Round 66 (Rated for Div. 2) A. From Hero to Zero