谭浩强--c++面向对象程序设计-(红色书皮)--大纲笔记
- 格式:doc
- 大小:91.00 KB
- 文档页数:23
第一章C++ 基础endl 换行并刷新输出流setw(n) 设置字段位数为nhex,oct,dec 十六进制,八进制,十进制表示setfill 定义填充字符setprecision 定义浮点数的精度left,right 左对齐,右对齐showpoint 强制显示小数点以及全部尾部0C++通过给常量命名的方式定义常量:const<数据类型名><常量名>=<表达式>用const定义的标识符常量时,一定要对其初始化。
在说明时进行初始化是对这种常量置值的唯一方法,不能用赋值运算符对这种常量进行赋值。
函数声明的一般形式为函数类型函数名(参数表)函数模板的定义template<typename 或class T>函数定义例子:template<typename T>T max(T a,T b){return(a>b)? a:b;}定义函数模板时可以使用多个类型参数,每个类型参数前面只需加上关键字typename或class,用逗号分隔:template <class T1, class T2, class T3>例子:template<class T1, class T2>T1 max(T1 a,T2 b){return (a>b) ? a : (T1)b;}有默认参数的函数:实参与形参的结合是从左至右进行的,因此指定默认值的参数必须放在形参列表中的最右端引用定义对变量起另外一个名字(别名alias),这个名字称为该变量的引用。
<类型> &<引用变量名> = <原变量名>;其中原变量名必须是一个已定义过的变量。
如:int max ;int &refmax=max;refmax并没有重新在内存中开辟单元,只是引用max的单元。
max与refmax在内存中占用同一地址,即同一地址两个名字。
说明:以下的内容是对《C程序设计(第三版谭浩强著)》知识点的概括,主要是提取全书详细的知识点。
我所呈现给大家的内容绝大部分是图表的形式,结构清晰、层次分明。
一些上机操作易出错的细节也在具体内容中作了强调,其中包含了本人的一些上机实践经验。
对于要参加国家二级计算机C语言等级考试的学生特别有帮助。
对初学C语言的人可作为工具书来参考。
另外我对原书中3到6 章的知识点顺序稍作调整重组。
值得注意的是,《C程序设计(第三版谭浩强著)》书中对C编译系统并未指定,而以下内容完全是按照Visual C++6.0的编译系统来写的,所以涉及的具体的情况均是按Visual C++6.0的编译系统给出的。
这也正是特别适用参加国家二级计算机C语言等级考试学生的一个原因。
我写这个知识总结与大家分享,是想对学C的童鞋有些帮助,当然也是自己学习C的一个总结。
当然本人也是刚学习C一学期的新手,出现错误和纰漏在所难免,希望大家谅解。
也非常欢迎有兴趣的朋友致邮572009833@进行相关的讨论。
@竹林~幻影2012-08-25 于沈阳I目录第一章 C语言的特点 (1)第二章算法 (2)第三章数据类型 (4)第四章四种基本运算 (7)第五、六章程序的三种基本结构 (11)第七章数组 (19)第八章函数 (24)第九章预处理命令 (33)第十章指针 (35)第十一章结构体与共用体 (45)第十二章位运算 (53)第十三章文件 (57)附录 C 语言的运算符和结合性 (60)II一种语言之所以能存在和发展,并具有较强的生命力,总是有其独特之处。
C 语言的主要特点概括如下:(1)语言简洁、紧凑,使用方便、灵活。
(2)运算符丰富。
(3)数据类型丰富。
(4)具有结构化的控制语句。
用函数作为程序的模块单位,便于实现程序的模块化。
(5)语法限制不太严格,程序设计自由度大。
(6)C允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
谭浩强《C++面向对象程序设计》知识点总结1 C++初步知识1.1 C++的输入输出输入:采用标准输入流对象istream和提取运算符cin>>输出:采用标准输出流对象ostream和插入运算符cout<<1.2 函数的重载一名多用,要求重载函数的参数个数或类型与原来的不同1.3 函数模板给功能相似的函数建立一个统一的模板要求:函数的参数个数和原来的要相同格式:template <typename T> 通用函数定义1.4 变量的引用相当于给变量起一个别名,变量和其引用共享同一内存空间e.g.int a;int &b = a; //声明b是一个int型变量a的引用121.5 字符串变量String类1.6 动态分配/撤销内存:new和delete格式:new 类型(初值) //返回一个指向数据类型的指针new 类型[num] //new一个含有num个元素的类型数组delete [ ] 指针变量 //[ ]表示对数组空间操作,可选1232 类和对象的特性及使用2.1 对象包含作为属性的数据成员和作为行为的成员函数,成员函数用来对数据进行操作,以便实现某些功能。
2.2 面向过程程序设计 VS 面向对象程序设计面向过程程序设计:程序=数据结构+算法面向对象程序设计:对象=数据结构+算法,程序=对象s+消息2.3 面向对象程序设计的四个主要特征抽象:将有关事物归纳集中,作用是表示同一类事物的本质。
类是对象的抽象,而对象是类的具体表现形式。
封装:将数据和操作数据的函数绑定在一起,将具体的实现细节隐藏起来,仅对外保留接口。
继承:利用已有类建立新类,新类从已有类中获得其已有特性的机制。
多态:不同的对象对接收到的同一消息会产生不同的行为的现象(单接口,多实现)2.4 类的声明和对象的定义类声明格式:class 类名{private:私有的数据和成员函数;public:公用的数据和成员函数;};1234567对象定义格式类名对象名;12.5 类的成员函数类成员函数可访问本类中的任何成员,一般将需要被外界调用的成员函数指定为public,它们是类的对外接口对于函数体较短(三行以内)的成员函数可在类内声明和定义,对于一般的成员函数,一般在类内声明,在类外定义(别忘了加类名和域运算符::)2.6 对象成员的引用通过对象名和成员运算符.访问对象中的成员通过对象的引用和成员运算符.访问对象中的成员通过指向对象的指针p->访问对象的成员2.7 构造函数和析构函数利用构造函数对对象进行初始化(包括用参数初始化表)利用析构函数进行清理等工作构造和析构函数执行的顺序:后构造的先析构(类似栈)2.8 静态数据成员能在同类的多个对象之间实现数据共享,在内存中只占一份空间。
第一章概述学习C语言的用途①C对操作系统和系统实用程序以及对硬件进行操作方面,C有明显的优势。
现在很多大型应用软件也用C编写。
绝大多数操作系统都是由C或C++语言编制。
特别是嵌入式操作系统。
②是学习其他课程的基础(比如数据结构、操作系统原理、编译原理等)③是学习C++或C#和JAVA语言的基础1.1.C语言的诞生:C语言是在B语言的基础上发展起来的,B (BCPL)语言是1970年由美国贝尔实验室设计的, 并用于编写了第一个UNIX操作系统,在PDP 7上实现。
优点:精练,接近硬件,缺点:过于简单,数据无类型。
1973年贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言,对B取长补短,并用之改写了原来用汇编编写的UNIX,(即UNIX第5版),但仅在贝尔实验室使用。
•1975年UNIX第6版发布,C优点突出引起关注。
•1977年出现了《可移植C语言编译程序》,推动了UNIX在各种机器上实现,C语言也得到推广,其发展相辅相成。
•1978年影响深远的名著《The C Programming Language》由 Brian W.Kernighan和Dennis M.Ritchie 合著,被称为标准C。
•之后,C语言先后移植到大、中、小、微型计算机上,已独立于UNIX和PDP,风靡世界,成为最广泛的几种计算机语言之一。
1.2. C语言的特点①语言简洁、紧凑,使用方便、灵活。
共有32个关键字,9种控制语句。
②运算符丰富,共有34种运算符。
③数据结构丰富,数据类型有:整型、实型、字符型、数组、指针、结构体、共用体等。
④具有结构化的控制语句(如if…else、while、do…while、switch、for)⑤语法限制不太严格,程序设计自由度大。
⑥允许直接访问物理地址,能进行位(bit)操作,可以直接对硬件操作。
⑦生成目标代码质量高,程序执行效率高。
⑧可移植性好。
1.3 简单的C语言程序介绍例:1.1#include <stdio.h>void main( ){printf ("This is a C program.\n");}例1.3#include <stdio.h>int max(int x, int y){int z;if (x>y) z=x;else z=y;return (z);}void main( ) /* 主函数*/{int max(int x,int y); / 对被调用函数max的声明 */int a, b, c; /*定义变量a、b、c */scanf(″%d,%d″,&a,&b); /*输入变量a和b的值*/c=max(a,b); /*调用max函数,将得到的值赋给c */printf(″max=%d\\n″,c); /*输出c的值*/}C程序:(1) C程序是由函数构成的。
C语言谭浩强版笔记第一章程序设计和C语言1、计算机能直接识别和接受的二进制代码称为机器指令,机器指令的集合就是该计算机的机器语言。
2、语言的发展历史:①机器语言②符号语言③高级语言3、高级语言的发展:①非结构化语言②结构化语言③面向对象的语言4、C语言的祖先是BCPL语言5、在字符串中的//和/*都不作为注释的开始。
而是作为字符串的一部分。
【但是在vc++6.0中//显示编译错误】6、不要以为在max函数中求出最大值z后就会自动地作为函数值返回调用处,必须用return语句指定将哪个值作为函数值。
也不要不加分析地在所有函数后面都写上return 07、一个程序由一个或多个源程序文件组成8、全局声明:即在函数之外进行的数据声明,在函数外面声明的变量称为全局变量。
例如把int a,b,sum;放到main函数的前面9、函数是C程序的主要组成部分,编写C程序的工作主要就是编写一个个函数10、一个C语言程序是由一个或多个函数组成的,其中必须有且只有一个main函数11、一个小程序只包含一个源程序文件,在一个源程序文件中包含若干个函数(其中一个为main函数),若程序规模太大,可以使一个程序包含若干个源程序文件,每个源程序文件又包含若干个函数【一个源程序文件就是一个程序模块,一个程序分成若干个程序模块】12、在进行编译时是以源程序文件为对象进行的【分别对各源程序文件进行编译得到相应的目标程序,然后再将这些目标程序连接成为一个统一的二进制可执行程序】13、C语言的这种特点使得容易实现程序的模块化14、一个函数名后面必须跟一对圆括号,括号内写函数的参数名及其类型。
如果函数没有参数,可以写void或空括号【如int main(void)或int main()】15、void dump(){}它是一个空函数,但是是合法的16、程序总是从mian函数开始执行的,不管位置在哪儿17、程序中对计算机的操作是由函数中的C语句完成的18、二进制目标程序在visual C++中的后缀为.obj19、可执行程序在visual C++中的后缀为.exe20、一个源程序经过编译后得到的目标程序要经过连接阶段与函数库进行连接才能生成可执行文件21、程序设计的任务:①问题分析②设计算法③编写程序④对源程序进行编辑、编译和连接⑤运行程序,分析结果⑥编写程序文档第二章算法1、对数据的描述:在程序中要指定用到哪些数据类型以及这些数据类型和数据的组织形式,这就是数据结构。
第1章 C++的初步知识*1.1 C和C++语言属于计算机高级语言,支持面向过程的程序设计方法。
*1.2 C++兼容C,是C的加强版,增加了面向对象(OOP)机制。
*1.3 用高级语言编写的程序称作源程序,C++源程序的扩展名为CPP,C源程序的扩展名为C。
*1.4 源程序被编译或解释为机器语言方可执行。
C和C++均采用编译方式,源程序经编译、连接后形成机器语言的目标程序文件。
*1.5 用户最终执行的是目标程序文件,它是二进制可执行文件,扩展名为EXE。
*1.6 执行目标程序与源程序无关,但是,要修改目标程序,必须先修改源程序,然后,重新编译、连接,产生新的目标程序或覆盖原目标程序。
1.7 C和C++均支持模块化程序设计,C以函数为基本模块,C++增加了类模块。
*1.8 C和C++均支持结构化程序设计,有三种基本结构:顺序、分支、循环。
*1.9 每个C或C++源程序可由若干个文件组成,程序总是从主函数main开始执行,因此,每个源程序有且仅有一个主函数。
*1.10 C和C++区分字母的大小写。
*1.11 C和C++语句以分号结尾,仅有分号的语句称作空语句。
*1.12 表达式后缀分号称作表达式语句。
*1.13 用花括号{}括起来的一组语句统称复合语句。
复合语句可省略其后分号,但复合语句内的语句不可省略分号(除非它也是复合语句)。
*1.14 C的注释以/*开头,结束于*/,可跨行。
C++增加了以//开头,至行尾结束的注释。
*1.15 C和C++能直接对内存进行操作,从而实现对硬件的操作。
1.16 广义地说,求解问题的方法和步骤称作算法。
就程序设计而言,对数据的操作方法和步骤称作算法。
*1.17 算法和数据结构是程序的两大要素。
1.18 掌握三种基本结构的图示。
第2章数据类型和表达式*2.1*2.2 的数)。
*2.3 含有小数点或E或e的数为双精度实型。
*2.4 整型、实型、字符型、布尔型统称数值型。
C++面向对象程序设计课后答案(1-4章)第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。
这种范型的主要特征是:程序=对象+消息。
面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。
第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。
面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。
这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。
[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。
类和对象之间的关系是抽象和具体的关系。
类是多个对象进行综合抽象的结果,一个对象是类的一个实例。
在面向对象程序设计中,总是先声明类,再由类生成对象。
类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。
[1_3]现实世界中的对象有哪些特征?请举例说明。
对象是现实世界中的一个实体,其具有以下一些特征:(1)每一个对象必须有一个名字以区别于其他对象。
(2)需要用属性来描述它的某些特性。
(3)有一组操作,每一个操作决定了对象的一种行为。
(4)对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。
例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36 生日:1966.10.1 工资:2000 部门:人事部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。
C程序设计(第五版)谭浩强学习笔记—重点及易错点(第7章-函数)⽤函数实现模块化程序设计⽬录⼀、定义函数定义函数应包括以下⼏个内容:(1) 指定函数的名字,以便以后按名调⽤。
(2) 指定函数的类型,即函数返回值的类型。
(3) 指定函数的参数的名字和类型,以便在调⽤函数时向它们传递数据。
对⽆参函数不需要这项。
(4) 指定函数应当完成什么操作,也就是函数是做什么的,即函数的功能。
这是最重要的,是在函数体中解决的。
类型名函数名(形式参数表列){函数体}例如:int max(int x,int y){ int z; //声明部分z=x>y?x:y; //执⾏语句部分return(z);}当然函数可以没有返回值或者形式参数。
⼆、调⽤函数1.⾸先要对要调⽤的函数进⾏声明2.采⽤合适的⽅式调⽤函数(1). 函数调⽤语句 把函数调⽤单独作为⼀个语句。
如printf_star(); 这时不要求函数带回值,只要求函数完成⼀定的操作。
(2). 函数表达式 函数调⽤出现在另⼀个表达式中,如c=max(a,b); 这时要求函数带回⼀个确定的值以参加表达式的运算。
(3). 函数参数 函数调⽤作为另⼀个函数调⽤时的实参。
如m=max(a,max(b,c));,⼜如:printf (″%d″, max (a,b));3.实参和形参间的数据传递:实参向形参的数据传递是“值传递”,单向传递,只能由实参传给形参,⽽不能由形参传给实参。
实参和形参在内存中占有不同的存储单元,实参⽆法得到形参的值。
例如:{ float add(float x, float y); //对add函数作声明float a,b,c;printf("Please enter a and b:"); //提⽰输⼊scanf("%f,%f",&a,&b); //输⼊两个实数c=add(a,b); //调⽤add函数printf("sum is %f\n",c); //输出两数之和return 0;}float add(float x,float y) //定义add函数{ float z;z=x+y;return(z); //把变量z的值作为函数值返回}三、函数的递归调⽤在调⽤⼀个函数的过程中⼜出现直接或间接地调⽤该函数本⾝,称为函数的递归调⽤。
面向对象程序设计实验指导书江西理工大学电气工程与自动化学院年月目录绪论错误!未指定书签。
写本书的目的错误!未指定书签。
本书的结构安排错误!未指定书签。
如何使用本书错误!未指定书签。
实验一程序的运行环境和运行程序的方法错误!未指定书签。
实验目的错误!未指定书签。
实验内容和步骤错误!未指定书签。
实验二对的扩充错误!未指定书签。
实验目的错误!未指定书签。
实验内容错误!未指定书签。
程序阅读错误!未指定书签。
程序设计错误!未指定书签。
思考题错误!未指定书签。
实验三类和对象(一)错误!未指定书签。
实验目的错误!未指定书签。
实验内容错误!未指定书签。
程序阅读错误!未指定书签。
程序设计错误!未指定书签。
思考题错误!未指定书签。
实验四类和对象(二)错误!未指定书签。
实验目的错误!未指定书签。
程序阅读错误!未指定书签。
程序设计错误!未指定书签。
思考题错误!未指定书签。
实验五运算符重载错误!未指定书签。
实验目的错误!未指定书签。
实验内容错误!未指定书签。
程序阅读错误!未指定书签。
程序设计错误!未指定书签。
思考题错误!未指定书签。
实验六派生与继承错误!未指定书签。
实验目的错误!未指定书签。
实验内容错误!未指定书签。
程序阅读错误!未指定书签。
程序设计错误!未指定书签。
实验七派生与继承—多重派生错误!未指定书签。
实验目的错误!未指定书签。
实验内容错误!未指定书签。
程序阅读错误!未指定书签。
程序设计错误!未指定书签。
思考题错误!未指定书签。
实验八程序、程序和程序错误!未指定书签。
实验内容错误!未指定书签。
实验描述错误!未指定书签。
实验步骤错误!未指定书签。
实验结果分析错误!未指定书签。
思考题错误!未指定书签。
实验九简单单文档程序设计错误!未指定书签。
实验目的错误!未指定书签。
实验内容错误!未指定书签。
实验描述错误!未指定书签。
实验步骤错误!未指定书签。
实验结果错误!未指定书签。
思考题错误!未指定书签。
实验十简单对话框程序设计错误!未指定书签。
第一章C++初步知识
第一节从C到c++
一:c++的输入输出语句
C++用cin和cout完成输入输出功能,c用scanf和printf
二:c++用const定义常变量
C语言#define PI 3.14
c++ const float pi=3.14
三:c++函数原型声明
四:c++函数的重载
函数名相同,参数个数或类型,或函数返回值之中有不同的,用一个函数名实现不同的功能
五:函数模板
定义完函数模板,系统根据实际参数的类型赋给相应的形参
形式template <typename T> (用T代替数据类型)
六:c++有默认参数的函数
七:变量的引用(别名)
Int a
Int & b=a;b是a的引用(别名),共同占用同一个内从八:内置函数
不重要
九:运算符作用域
::以后见了再说
十:字符串变量
C语言用字符数组表示字符串,c++本身就有string数据类型十一:动态分配内存
C语言用malloc函数和free函数
C++用new 函数和delete 函数
第二章类和对象
第一节类的声明和对象的定义
一:类和对象的关系
二:类的声明
Class 类名
{
Public:
Private:
};
三:对象的定义
1,先声明类再定义对象
2,声明类的同时定义对象
3,不出现类名直接定义对象
第二节类的成员函数
一:成员函数的作用
调用数据成员
二:在类外定义成员函数
1,成员函数:类型名类名::成员函数名(参数表列)2,构造函数类名::成员函数名(参数表列)
没有类型名是因为构造函数没有参数没有返回值三:inline成员函数
四:成员函数的存储方式
不和数据成员在一起,独立存储,不同对象使用相同的成员函数,通过this指针区别不同的对象
第三节对象成员的引用
一:通过对象名加成员运算符
二:通过引用名加成员运算符
三:通过指针访问
第四节类的特点
一:抽象性
类和对象的关系:类是对象的抽象,对象是类的具体
二:封装性
公用接口和私有实现的分离(private public)
三: 继承性(第三章)
四:多态性(第四章)
第三章关于类和对象的进一步讨论。