您好,欢迎访问三七文档
1、《数据结构与算法分析》从C语言到C++语言《数据结构与算法分析》C++的学习用书任何一本你能接触到的C++编程书籍谭教授的书清华王燕《面向对象的理论与C++实践》航空工业赵建周《C和C++程序设计教程》《数据结构与算法分析》C与C++的不同C++在代码上对C的扩充大不相同C:面向过程C++:面向对象《数据结构与算法分析》面向过程程序设计—C语言选定数据结构、设计算法过程或函数。程序执行被看作各过程调用的序列。面向过程编程:程序=数据结构+算法设计思路自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。炒菜吃种菜、洗菜、切菜、炒菜《数据结构与算法分析》面向过程的结构化程序设计方法缺点:可重用性差、数据安全性差、难以开发大型软件和图形界面的应用软件把数据和处理数据的过程分离为相互独立的实体。当数据结构改变时,所有相关的处理过程都要进行相应的修改。每一种相对于老问题的新方法都要带来额外的开销。图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。《数据结构与算法分析》面向对象程序设计—C++语言将数据及对数据的操作方法封。
2、装在一起,作为一个相互依存、不可分离的整体——对象。对同类型对象抽象出其共性,形成类。主要特征是各对象之间的消息传递和各类之间的继承。类通过一个简单的外部接口,与外界发生关系。对象与对象之间通过消息进行通信。《数据结构与算法分析》面向对象程序设计一个类的集合和各类之间以继承关系联系起来的结构,再加上一个主程序,在主程序中定义各对象并规定它们之间传递消息的规律。面向对象编程:对象=数据结构+算法(封装);程序=对象+对象+对象+……炒菜吃:买净菜、按照烹调说明书炒菜《数据结构与算法分析》面向对象程序设计优点:程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。《数据结构与算法分析》C语言中的关键字Autobreakcasecharcontinuedefaultdodoubleelseentryenumexternforfloatgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedef。
3、unionunsignedwhile《数据结构与算法分析》C++语言中的关键字Asmautobreakcasecatch*cdeclcharclass*constcontinuedefaultdelete*dodoubleelseenumexternfarfloatforfriend*gotohugeifinline*intinterrupulongnearnew*operator*pascalprivate*protected*public*registerreturnshortsignedsizeofstaticstructswitchtemplate*this*throw*try*typedefunionunsignedvirtual*voidvolatilewhile《数据结构与算法分析》C++对C的保留C++具有对传统C语言的向后兼容性,很多已有的C程序可以稍加改造就可以重用。虽然C++具备面向对象的处理能力,但它还是保留了很多面向过程的东西。用C++完全可以不用面向对象的思想来进行程序设计,当然人们不会这样去做——除了那些只是把C++看成是C扩充的初学者。《数据结构与。
4、算法分析》C++对C在代码上的扩充cout,cin代替printf,scanfPrintf,scanf都必须配合%d、%f等格式控制符使用Cout,cin后面直接跟上操作数即可,不用格式控制符;new,delete代替malloc,freeNew自动计算要分配的类型大小,省事,避免偶然错误;它自动返回正确的指针类型,不必进行类型转换;可以用new将分配的对象初始化;《数据结构与算法分析》一个简单的C++程序例子#includeiostream#includestringvoidmain(){stringuser_name;coutPleaseenteryourfirstname:;cinuser_name;cout'\n'Hello,user_name...andgoodbye!\n;}《数据结构与算法分析》C++对C在代码上的扩充引用voidswap(int&a,int&b)作用:传递数据、不复制副本函数重载:一物多用intmax(inta,intb,intc)longmax(longa,longb,longc)floatmax(floata,floatb。
5、,floatc)《数据结构与算法分析》几个C++的概念面对对象技术:软件系统对现实世界的直接模拟,尽量实现将现实世界中的事物直接影射到软件系统的解空间。现实空间问题面向对象解空间物质:一辆白色的自行车意识:自行车具体事物:一个对象----自行车的实例抽象概念:自行车类《数据结构与算法分析》几个C++的概念对象:在系统中用来描述客观事物的,其自身所具有的状态特征及可以对这些状态施加的操作结合在一起所构成的独立实体,它是用来构成系统的基本单位。对象由一组属性和一组行为构成。属性:用来描述对象静态特征的数据项。行为:用来描述对象动态特征的操作序列。《数据结构与算法分析》几个C++的概念--对象对象名:王东对象的状态:性别:男身高:180cm体重:68kg对象的功能(可做的操作):回答身高回答体重回答性别修理电器教计算机课均属于自身所承受的操作均属于施加于其他对象的操作行为:用来描述对象动态特征的操作序列属性:用来描述对象静态特征的数据项。一个人,王东,男,身高180cm,体重68kg,会修电器、能教计算机课。《数据结构与算法分析》几个C++的概念—类分类——人类通常的思维方法。生。
6、活中,我们总是会把各种物体进行分类。分类所依据的原则——抽象忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。例如,石头、树木、汽车、房屋等都是人们在长期的生产和生活实践中抽象出的概念,它们分别代表了各种不同类的物体。《数据结构与算法分析》几个C++的概念类:具有相同属性和服务的一组对象的集合,是对一组客观对象的抽象,它将该组对象所具有的共同特征(包括属性特征和行为特征)集中起来,以说明该组对象的能力和性质。如,“表”,属性特征:时、分、秒;行为特征:设定时间,显示时间。类是多个实例的综合抽象,而实例又是类的个体实物。利用类可以实现数据的封装、隐藏、继承与派生。《数据结构与算法分析》类与对象—类的声明类是一种用户自定义类型,声明形式:class类名称{public:公有成员(外部接口)private:私有成员protected:保护型成员}Class声明类的名称,用public、private和protected关键字来说明类的成员的访问控制属性,最后给出成员函数的实现。《数据。
7、结构与算法分析》类与对象—类公有类型成员:在关键字public后面声明,它们是类与外部的接口,任何外部函数都可以访问公有类型数据和函数。私有类型成员:在关键字private后面声明,只允许本类中的函数访问,而类外部的任何访问都是非法的。保护类型成员:与private类似,其差别表现在继承与派生时对派生类的影响不同。《数据结构与算法分析》类的一个例子classClock{public:voidSetTime(intNewH,intNewM,intNewS);voidShowTime();private:intHour,Minute,Second;};成员数据(属性)成员函数(行为)《数据结构与算法分析》voidClock::SetTime(intNewH,intNewM,intNewS){Hour=NewH;Minute=NewM;Second=NewS;}voidClock::ShowTime(){coutHour:Minute:Second;}成员函数的声明:返回值类型类名::函数成员名(参数表){函数体}《数据结构与算法分析》几个C++的概念分隔符“::”:在所定义的成员函。
8、数名之前应该加上类名,中间用分隔符隔开;类名::类成员函数在对于类成员的访问时,使用“.”操作符:对象名.类成员函数或对象名.类名::类成员函数定义指向此类对象的指针,在使用此类成员时,使用“-”操作符指针-类成员函数《数据结构与算法分析》类的声明成员数据:与一般的变量声明相同,但需要将它放在类的声明体中。成员函数:称为“方法”,一个方法对应一个操作。可以在类中说明原型,在类外给出函数体实现,并在函数名前使用类名加以限定。也可以直接在类中给出函数体,形成内联成员函数。一般而言,数据成员用private,成员函数用public只有被声明为public的方法(成员函数)才能被外界所激活简单的成员函数的实现直接嵌入类的声明中(inline),复杂的则可写在外面。《数据结构与算法分析》类与对象—对象类的对象是该类的某一特定实体,即类类型的变量。声明形式:类名对象名;例:ClockmyClock;《数据结构与算法分析》类中成员的访问方式类中成员互访直接使用成员名类外访问:外界通过发“消息”来激活有关方法,所谓消息,其实就是一个命令,由程序语句来实现使用“对象名.成。
9、员名”方式访问public属性的成员,注:类外部不能访问私有性成员,只有本类中的函数可以访问。如:myClock.ShowTime()就是向对象myClock发出一个消息,通知它执行display方法《数据结构与算法分析》一个例子intmain(){ClockmyClock;myClock.SetTime(8,30,30);myClock.ShowTime();}#includeiostreamclassClock{......//类的声明略}//......类的实现略《数据结构与算法分析》构造函数构造函数的作用是在对象被创建时使用特定的值构造对象,或者说将对象初始化为一个特定的状态。(在声明对象时进行的数据成员设置,称为对象的初始化。)构造函数也是成员函数,被声明为公有型,与类名同名,无返回值。构造函数在对象创建时由系统自动调用。构造函数也可以被重载,在对象创建时由系统自动调用。如果程序中未声明,则系统自动产生出一个默认形式的构造函数,该函数没有参数,不进行任何操作《数据结构与算法分析》构造函数举例classClock{public:Clock(intNewH,intN。
10、ewM,intNewS);//构造函数voidSetTime(intNewH,intNewM,intNewS);voidShowTime();private:intHour,Minute,Second;};《数据结构与算法分析》构造函数的实现:Clock::Clock(intNewH,intNewM,intNewS){Hour=NewH;Minute=NewM;Second=NewS;}建立对象时构造函数的作用:intmain(){Clockc(0,0,0);//隐含调用构造函数,将初始值作为实参。c.ShowTime();}《数据结构与算法分析》析构函数“清理善后”:在撤销对象时,系统自动调用析构函数(destructor),释放此对象所属的空间。析构函数名:与类名相同,只是在函数名前面加一个“~”,以区别于构造函数只能用一个析构函数,不能重载若用户未编写析构函数,编译系统会自动生成一个缺省的析构函数,它不进行任何操作《数据结构与算法分析》构造函数和析构函数举例#includeiostreamcla。
本文标题:c++与c的区别
链接地址:https://www.777doc.com/doc-2904323 .html