您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 08-C++程序设计基础ppt1
内容及参考书第一部分:C++语法1.C++特性2.C++函数3.类与数据封装4.类的应用5.运算符重载6.继承7.虚拟函数与多态性8.模板函数内容及参考书第二部分VisualC++初步1.对话框程序设计方法2.SDI文档设计方法3.数据保存4.图形绘制附:参考书1.BorlandC++4.0使用与编程指南蔡志明清华大学出版社2.VisualC++6.0程序设计例解教程中国铁道出版社3.C++编程习题与解答机械工业出版社4.VisualC++5.0易学活用《参考资料》:1、ThinkinginC++2ndedition,PrenticeHallPTR(本书可在网上免费下载,机械工业出版社出版了该书的中文版)。2、BjarneStroustrup,TheC++ProgrammingLanguage(ThirdEdition),MurrayHill,NewJersey。3、FrankB.Brokken,C++AnnotationsVersion4.4.2。4、PeterMüller,IntroductiontoObject-OrientedProgrammingUsingC++。相关网站:~bs/homepage.html,C++设计人BjarneStroustrup个人主页。学习目的会用VisualC++6集成开发环境编写和调试程序。掌握C++语言的概念、语法规则和编程方法,理解结构化的程序设计和面向对象程序设计的基本思想,会用结构化的程序设计和面向对象的程序设计方法,开发简单的应用程序。C++语言是对C语言的扩展,是C语言的超集。C语言是美国贝尔实验室在1969~1973年开发的,与此同时,还用它开发了UNIX操作系统。C语言又是由B语言衍生而来的,B语言是贝尔实验室的KenThompson在BCPL语言的基础上开发的,并用它编写了第一个UNIX操作系统。BCPL语言是英国剑桥大学的MartinRichards,60年代在美国MIT时设计的。1971年,贝尔实验室的DennisRitchie扩展了B语言(通过增加类型),他称之为NB,即NewB。在更改了B语言的结构,并重写了B语言的编译器后,Ritchie称他的新语言为C。1983年,出现了许多C语言的版本,美国国家标准化协会(ANSI)在1989年出版了标准的C语言,称之为ANSIC。前言C++语言在1980年开始被使用,“C++”这个名字是由RickMaseitti提出,到1983年夏确定的。C++的创作灵感来源于当时计算机语言多方面的成果,特别是BCPL语言(BasicCombinedProgrammingLanguage,它也是C语言的来源之一)和Simula67语言(以面向对象为核心的语言),同时还借鉴了Algol68。就如同它的名字表达的那样,C++语言是C语言的一个超集,它是一门混合型的语言,既支持传统的结构化程序设计,又支持面向对象的程序设计,这是C++语言成功流行的一个重要原因。C++语言的ISO标准已在1997年11月被一致通过,1998年8月被正式批准。C++作为一门混合型语言,在增加对于面向对象方法的支持的同时,还继承了传统程序设计语言C的优点,克服了其不足之处,使得自身既适用于结构化程序设计,又能满足面向对象程序设计的要求,这就符合广大程序员逐步更新其程序设计观念和方法的要求,因而很快流行起来。总之,对于传统的财富不是完全抛弃,而是继承并发展之,是C++语言成功的重要原因。C++从C语言发展而来,比C更好,其优点主要包括:(1)与C语言兼容,既支持面向对象的程序设计,也支持结构化的程序设计。同时,熟悉C语言的程序员,能够迅速掌握C++语言。(2)修补了C语言中的一些漏洞,提供更好的类型检查和编译时的分析。使得程序员在C++环境下继续写C代码,也能得到直接的好处。(3)生成目标程序质量高,程序执行效率高。一般来说,用面向对象的C++编写的程序执行速度与C语言程序不相上下。(4)提供了异常处理机制,简化了程序的出错处理。利用throw、try和catch关键字,出错处理程序不必与正常的代码紧密结合,提高了程序的可靠性和可读性。(5)函数可以重载及可以使用缺省参数。重载允许相同的函数名具有不同参数表,系统根据参数的个数和类型匹配相应的函数。缺省参数可以使得程序员能够以不同的方法调用同一个函数,并自动对某些缺省参数提供缺省值。(6)提供了模板机制。摸板包括类摸板和函数模板两种,它们将数据类型作为参数。对于具体数据类型,编译器自动生成模板类或模板函数,它提供了源代码复用的一种手段。编程者想要得到正确并且易于理解的程序,必须采用良好的程序设计方法。结构化程序设计和面向对象的程序设计是两种主要的程序设计方法。结构化程序设计建立在程序的结构定理基础之上,主张只采用顺序、循环和选择三种基本的程序结构和自顶向下逐步求精的设计方法,实现单入口单出口的结构化程序;面向对象的程序设计主张按人们通常的思维方式建立问题区域的模型,设计尽可能自然的表现客观世界和求解方法的软件,对象、消息、类和方法是实现这一目标而引入的基本概念,面向对象程序设计的基本点在于对象的封装性和继承性以及由此带来的实体的多态性。与结构化程序设计相比较,面向对象的程序设计具有更多的优点,适合开发大规模的软件工程项目。C++语言是当今最流行的高级程序设计语言之一,它既支持结构化的程序设计方法,也支持面向对象的程序设计方法。使用MicrosoftVisualC++提供的集成开发环境,编程者可以轻松完成C++项目的创建、编译、调试和运行。第一章C++的新特性一.注释单行注释://多行注释:/**/在C语言块注释的形式/*ExplanationSentence*/的基础上,C++语言提供了一种新的单行注释形式://ExplanationSentence即用“//”表示注释开始,从该位置直到当前行结束的所有字符都被作为注释。举个简单的例子:sum=0;//变量sum初值置为零for(i=1;i=100;i++){//循环体开始sum+=i;//依次累加i}二.C++的输入与输出旧有的:stdio.hscanf()保留printf()C++的I/O函数库:iostream.hcincout运算符:输出运算符;输入运算符输入/输出流机制C++保留了C语言标准库中各种输入/输出函数,而且提供了一套新的输入/输出机制――流机制。比如向标准输出输出一个字符串:coutC++isbeautiful!;或者由标准输入读一个整数,赋给变量ainta;cina;流式输入/输出运算符能够根据变量类型自动确定数据交换过程中的转换方式,还可以定义、的重载,方便了编程者自定义类型的数据的输入/输出。Prog1_1.cpp#includeiostream.hvoidmain(){charname[20];intage;cinnameage;cout“Yournameis“name“.\n”;cout“Yourare“age“yearsold.“endl;}//vstudio5环境下编译:#includestdafx.h#includeiostream#includeconio.husingnamespacestd;int_tmain(intargc,_TCHAR*argv[]){charname[20];intage;cinnameage;coutYournameisname.\n;coutYourareageyearsold.endl;_getch();return0;}三.更加灵活的变量说明在传统的C语言中,局部变量的说明必须集中放在执行代码的前面,数据说明语句和执行语句的混合将引起编译错误。而在C++中,可以在程序代码块的任何地方进行局部变量的说明。比如下面的代码在C语言中是不正确的,在C++语言中却可以正常运行。for(inti=1;i=100;i++);这样做的好处是使变量的定义和它的使用集中在一起,意义一目了然。四.更加严格的函数原型说明C++摒弃了C语言对函数原型随意简化的方式,这种简化是许多C语言程序错误的根源。C++语言要求编程者为函数提供完整的原型,包括全部参数的类型和返回值得说明。例如,有字符型和双精度类型两个参数、返回整型值的函数f,原型应该写为:intf(char,double);而C语言中允许将这个原型写成f();。在函数原型说明中,参数名可有可无,并且可以和函数定义中的参数名不一致。五.增加了函数重载机制重载是程序语言领域的重要概念。常规语言中最典型的例子是+、-、×、/等各种算术运算符的重载,这些符号可以同时用来表示多种类型数据之间的运算,这种对一个名字或一个符号赋予多重意义的情况就叫重载。C++语言增加了C语言所没有的函数重载机制。对一个函数名可以给出多个函数定义,只要这些定义可以通过参数个数或类型的不同区别开来即可。C++还允许对系统中预先定义的运算符号进行重载,增加新的定义。这样做的优点是在今后对新定义类型的变量进行运算时,计算公式写起来方便自然。六.函数缺省参数C++中允许函数有缺省参数。所谓缺省,是指函数调用时可以不给出实际的参数值。下面是一个有缺省参数的函数定义的实例:intf(inta,intb=1){returna*b;}此后,函数调用f(3,1)和f(3)将返回同样的结果。七.动态存储分配C++为了提高内存管理上的灵活性,提供了动态内存分配和释放的操作符new和delete,用来增强C语言中原有的函数malloc()和free();c中用:malloc,free函数c++中用:new,delete函数.new:要求一块新的存储空间,并返回所分配空间的指针.delete:释放由new函数所分配的存储空间.Prog1_2.cppintmain(intargc,char*argv[]){int*number;char*string;number=newint;deletenumber;number=newint(2);//()设定从存储器中分配2字节大小的空间,并//设定变量初值为2string=newchar[20];//[]要求分配20个该类型大小的空间delete[20]string;//或deletestringdeletenumber;return0;}八.引用类型(referencetype)引用类型:变量的别名.用法:1.在类型名后加上引用运算符&;2.给定初值.在VC中初值不可以为一数值;也不能引用不同类型的变量.Prog1_3.cpp#includeiostream.hintmain(intargc,char*argv[]){staticinti,j;floatk=3.14159;int&ref1=i,&ref2=j;//int&ref3=3;//VC中初值不可以为一数值//in&ref=k;//VC中不能引用类型不同的变量float&ref3=k;//产生临时变量inttemp=int(k),ref4=tempcout\ni=ij=jendlref1=ref1ref2=ref2endlref3=ref3endl;return0;}九.范围运算符变量的作用范围分三种:全局范围,局部范围,类范围.当局部变量与全局变量有相同的名称时,则全局变量被隐藏,只有局部变量可见.欲使用全局变量必须借助范围运算符::.作用域限定运算符::作用域限定运算符::用于对当前作用域之外的同名变量进行访问。例如在下面的例子中,我们可以利用::实现在局部变量a的作用域范围内对全局变量a的访问。#includeiostream.hinta;
本文标题:08-C++程序设计基础ppt1
链接地址:https://www.777doc.com/doc-3258963 .html