㈠ 跪求 Visual C++面向对象编程教程(第2版)(pdf) 王育坚 下载。 [email protected]
学完C语言有一定的基础了,再学习C++应该找一本详尽并且有一定深度的教材,推荐用清华大学出版社的《Visual C++面向对象编程教程》(王育坚 2003),是侯捷先生做序。并且,你可以在清华大学出版社网站上下载到配套ppt课件以及一些程序源代码,会给学习带来很大帮助.
C++是建立在C语言的基础上的,而不是仅仅比C多了几个函数!
首先,要把C语言学好
然后,再把有关面向对象的概念要弄通.
把这两步搞好了!
也就差不多了!
㈡ 如何用C语言实现面向对象
可以通过以下方法实现面向对象:
1、封装
封装就是把数据和方法打包到一个类里面。其实C语言编程者应该都已经接触过了,C 标准库 中的 fopen(), fclose(), fread(), fwrite()等函数的操作对象就是 FILE。
数据内容就是 FILE,数据的读写操作就是 fread()、fwrite(),fopen() 类比于构造函数,fclose() 就是析构函数。
2、继承
继承就是基于现有的一个类去定义一个新类,这样有助于重用代码,更好的组织代码。在 C 语言里面,去实现单继承也非常简单,只要把基类放到继承类的第一个数据成员的位置就行了。
例如,我们现在要创建一个 Rectangle 类,我们只要继承 Shape 类已经存在的属性和操作,再添加不同于 Shape 的属性和操作到 Rectangle 中。
3、多态 C++
语言实现多态就是使用虚函数。在 C 语言里面,也可以实现多态。 现在,我们又要增加一个圆形,并且在 Shape 要扩展功能,我们要增加 area() 和 draw() 函数。
但是 Shape 相当于抽象类,不知道怎么去计算自己的面积,更不知道怎么去画出来自己。而且,矩形和圆形的面积计算方式和几何图像也是不一样的。
4、虚表和虚指针
虚表(Virtual Table)是这个类所有虚函数的函数指针的集合。
虚指针(Virtual Pointer)是一个指向虚表的指针。这个虚指针必须存在于每个对象实例中,会被所有子类继承。
5、在构造函数中设置vptr
在每一个对象实例中,vptr 必须被初始化指向其 vtbl。最好的初始化位置就是在类的构造函数中。
事实上,在构造函数中,C++ 编译器隐式的创建了一个初始化的vptr。在 C 语言里面, 我们必须显示的初始化vptr。下面就展示一下,在 Shape 的构造函数里面,如何去初始化这个 vptr。
㈢ 在C语言中,什么叫做面向对象,什么叫做面向过程
面向对象和面向过程都是编程思想,分别以对象和过程为主要目标进行编程。
1、面向对象:面向对象(ObjectOriented)是一种软件开发方法。ObjectOriented的概念和应用已经超越了编程和软件开发。面向对象是一种理解和抽象现实世界的方法。它是计算机编程技术发展的产物。
2、面向过程:面向过程(Procere Oriented)是一种以过程为中心的编程思想。面向过程都是以正在发生的过程为主要目标进行编程,与面向对象明显的不同就是封装、继承、类。
(3)c面向对象pdf扩展阅读:
面向对象和面向过程的区别:
1、分析问题方式的不同:
面向过程是分析解决问题所需的步骤,然后使用函数逐步实现这些步骤,使用时一个接一个。
面向对象是将问题事务分解为各种对象。对象的建立不是为了完成一个步骤,而是为了描述一个事物在解决问题的整个过程中的行为。
2、解决问题的方法的不同:
面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。可以说面向过程是一种基础的方法。它考虑的是实际地实现。一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。
对比面向过程,面向对象的方法主要是把事物给对象化,对象包括属性与行为。当程序规模不是很大时,面向过程的方法还会体现出一种优势。
参考资料来源:网络-面向对象
参考资料来源:网络-面向过程
㈣ 求《c++面向对象程序设计》 pdf
已经发送,请查收!
㈤ c++ 面向对象程序设计 谭浩强电子书PDF(高分急求)仔细阅读我的提问!
全套我有
㈥ 求推荐几本关于C语言面向对象的书(要适合初学者的)
既然初学,那就直接c++ primer呗
㈦ 求谭浩强C++面向对象程序设计pdf,红皮的哪个版本!!!!!!!必有重赏!!!!!
如果没什么基础,先从C开始入门吧。C++语言本身包含的东西很多很杂,对初学者来说不是太好上手。C语言出现年代更早且C++设计的时候就是要在C上添加面向对象支持。C语言的语法规范大致上是C++的一个子集,语法简单,没有C++的各种让人困惑的高级特性,学起来相对简单直接。电子书这东西不可靠,刚学编程一个错字就能让你纠结半天 ,浪费时间不说,有时还会曲解原本的概念,把你带入一个错误的方向。我刚学编程就是这样过来的,要多坑爹有多坑爹。上242上597上99上60上,数字能见 我 Q,我是大学计算机专业的,能助你
㈧ 《用C实现面向对象》txt全集下载
用C实现面向对象 txt全集小说附件已上传到网络网盘,点击免费下载:
㈨ 谁有谭浩强的《C++面向对象程序设计》这本书的PDF电子版啊,如果有,可不可以发我一份多谢了!
谁有谭浩强的《C 面向对象程序设计》这本书的PDF电子版啊,如果有,可不推荐你还是不要用老谭的书,不怎么样,推荐看《C primer plus》,业内经典
㈩ 在C语言中,什么叫做“面向对象”,什么叫做“面向过程”
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用分别的函数来实现,问题就解决了。
而面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为 1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的i变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。
可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。
功能上的统一保证了面向对象设计的可扩展性。比如我要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整。如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的。