如果我们熟悉C中的结构体的话,理解C++中的类是很容易的。在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数。我们先来看一下C++中的结构体和类的异同之处:
          一、相同之处:结构体中可以包含函数;也可以定义public、private、protected数据成员;定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数;
         二、不同之处:结构体定义中默认情况下的成员是public,而类定义中的默认情况下的成员是private的。
实际上,C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体和类体现了数据结构和算法的结合。在所有的面向过程的程序思想中,算法和数据结构是分离的,而在面向对象的程序思想中,算法和数据结构是紧密结合在一起的。瑞士计算机科学家尼克劳斯·沃思(Niklaus Wirth)曾提出“程序=数据结构+算法”这一著名公式,实际上到了面向对象程序设计思想中,这一公式应该是“程序=(数据结构+算法)”,因为算法和数据结构是一个整体。任何算法都是针对特定的数据结构的。而且在面向对象程序设计中,我们可以这样来理解:
         对象=(算法+数据结构)
         程序=(对象+对象+...)
算法和数据结构被捆绑成一个类,而对象又是类的实例化。

转载于:https://www.cnblogs.com/thankyourfish/archive/2005/09/02/228363.html

C++学习笔记之二:通过结构体来理解类相关推荐

  1. Windows进程与线程学习笔记(二)—— 线程结构体

    Windows进程与线程学习笔记(二)-- 线程结构体 线程结构体 ETHREAD +0x000 Tcb : _KTHREAD 练习 线程结构体 ETHREAD 描述: 每个windows线程在0环都 ...

  2. Go 学习笔记(14)— 结构体定义、实例化、初始化、匿名结构体、结构体访问、结构体作为形参、结构体指针

    Go 语言中没有 "类" 的概念,也不支持 "类" 的继承等面向对象的概念.Go 语言不仅认为结构体能拥有方法,且每种自定义类型也可以拥有自己的方法. 1. 结 ...

  3. swift学习笔记(9)-结构体和类

    结构体和类对比 Swift 中类和结构体有很多共同点.共同处在于: * 定义属性用于存储值 * 定义方法用于提供功能 * 定义下标操作使得可以通过下标语法来访问实例所包含的值 * 定义构造器用于生成初 ...

  4. 【Java学习笔记之二十六】深入理解Java匿名内部类

    在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...

  5. Directx11学习笔记【二】 将HelloWin封装成类

    我们把上一个教程的代码封装到一个类中来方便以后的使用. 首先新建一个空工程叫做MyHelloWin,添加一个main.cpp文件,然后新建一个类叫做MyWindow,将于窗体有关的操作封装到里面 My ...

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

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

  7. 【ESP32S3学习笔记】LVGL相关结构体学习——lv_disp_drv_t

    LVGL相关结构体学习--lv_disp_drv_t 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后, ...

  8. IOS 学习笔记 2015-03-24 OC-API-常用结构体

    一 标题 常用结构体二 API 1 NSRange 表示一个范围 A 实例化 NSRange rg={3,5};//第一参数是起始位置第二个参数是长度B 实例化 NSRange rg2=NSMakeR ...

  9. 【C/C++学习笔记】C语言结构体指针的输入输出

    简单构造一个结构体实例如下: struct student {char name[20];int score; }; 1.指向结构体变量 int main() {struct student st1; ...

最新文章

  1. python获取文件的大小_python获取文件大小
  2. LSD快速直线检测的原理概要及OpenCV代码实现(CV类LineSegmentDetector)
  3. 双系统安装 Windows8和Windows Server2012
  4. 大数据架构如何做到流批一体?
  5. 今晚直播:非自回归神经机器翻译 | PhD Talk #24
  6. android学习日记12--布局管理器
  7. 高德在提升定位精度方面的探索和实践
  8. linux路由内核实现分析(二)---FIB相关数据结构(3)
  9. pip更新出问题后再输入报No module named ‘pip‘错怎么处理
  10. 优酷投屏显示无法连接服务器,无线投屏器为什么会连接不成功呢?
  11. 全局快门和卷帘快门的区别
  12. Word中公式编辑的快捷键
  13. 区块链技术的风险!(转载)
  14. 以春雨为题写一篇500字的散文
  15. Linux下convert批处理的命令及其与Windows下nconvert的区别与联系
  16. SpringDataJPA -06- specification的基本使用
  17. 图片基础知识与浏览器支持的图片格式
  18. jquery获取url最后一个斜杠前、后的内容
  19. android 8 音质,体验中国好音质 8款HiFi音质手机推荐
  20. 全志A33,制作生成boot.img脚本工具

热门文章

  1. 那些《西游记》中你不知道的野史,信不信由你
  2. 独立主机如何,不要被人忽悠了
  3. oracle对大对象类型操作:blob,clob,nclob,bfile
  4. 为什么机器人发展了几十年感觉还是没太大进展
  5. 字符集和字符编码的概念区分
  6. 用JSON.parse(JSON.stringify(itemData))序列化反序列化实现‘深度复制’
  7. Kafka-Monitor
  8. C# WinForm程序退出的方法比较
  9. Oracle RAC集群体系结构
  10. 我的编程学习日志(1)--进制转换