还剩6页未读,继续阅读
文本内容:
第一部分基础编程(TheBasicProgramming)概述(Introduction)
1、过程化程序设计(Pro__duralProgramming)程序(Programs)=算法(Algorithms)+数据结构(Structures)(大型软件主要是Struct之间的组合)描述问题只需3种基本控制语句顺序、选择、循环每个模块,其内聚性(aggregation)越强,外联型(association)越小,则模块__性越好
2、对象化程序设计(O__ectifiedProgramming)程序(Programs)=算法(Algorithms)+抽象数据类型ADS AbstractDataStructure这里的程序便可形成一种称之为类(Class)的对问题的描述;程序(Programs)=(对象(O__ect),对象(O__ect),…)这样就适应问题跨度更大,抽象层析更高,编程模块更加灵活高效第1章基本编程语句(BasicProgrammingStatements)
1、C++的基本编程语句包括说明语句、__语句、表达式语句和过程控制语句,其中过程控制语句又包括顺序语句、选择语句和循环语句注这里,不考虑跳转语句(goto),goto的使用,不太适合过程化的思想
2、在C/C++中,要将计算的结果保存在存储空间就必须指出存储空间的位置在C/C++中,存储数据的名称有两种1成为变量(或常量),是C\C++内部数据类型定义而产生的2对象(或常对象),由程序员定义的类(Class)而产生的说明语句又分为声明(Declarative)和定义(Definition)如果要在之前的程序中使用该程序之后定义的变量、对象或函数,则应该在程序之前对之后的部分进行声明,或者在其他文件中使用,亦如此变量的初始化与赋值
3、条件表达式()表达式1:表达式2是C/C++唯一的三元操作符,表示括号()中德条件满足,执行表达式1,不满足,执行表达式
24、If语句(IfStatement)
5、Switch语句(SwitchStatement)开关语句又称之为多分支语句,Switch括号中的表达式只能是整型、字符型和枚举型表达式,Case后面的常量表达式类型必须与其匹配
5、循环语句(LoopStatement)
5.
1、For循环结构(ForLoopStructure)包括4个部分
5.
1.
1、循环初始状态;
5.
1.
2、循环判断决定是否终止循环;
5.
1.
3、状态修正对上个循环状态的值进行修正;
5.
1.
4、循环体重复执行的语句序列
5.
2、While循环语句(WhileLoopStructure)
5.
3、Do..While循环语句(Do-WhileLoopStructure)先执行循环体,然后判断是否继续循环,因而,该循环至少执行一次循环
6、转移语句(MoveStatements)
6.
1、Break语句(BreakStatement)用在循环语句For、While、Do-While以及开关语句Switch中,跳出当前循环,或跳出Switch
6.
2、Continue语句(ContinueStatement)用在循环语句中,结束本次循环,进入下一次循环
7、Goto语句(GotoStatement)跳到指定的标记处执行标记之后的程序,是一种低级语言的表征,现在很少用到,只是在有多重循环体,要跳到最外层循环,就用Goto因为用Break或Continue只能跳出一个循环体第2章数据类型(DataTypes)
1、数据类型
1.一定的数据在计算机内部的表示方式;
2.该数据所表示的值的__;
3.在该数据上的一系列操作
2、C++的数据类型内部数据类型整数类型(int)、字符类型(char)、布尔类型(bool)、单精度浮点数(float)、双精度浮点数(double);还有通过数组、指针和引用等数据类型数组类型Type[]eg:inta[];引用类型Typeeg:doublea=12;doubleb=a;指针类型Type*eg:inta=123;int*iPtr=a程序员自定义的外部数据类型包括Class、Struct、Enum、Union组合而成的数据类型
2.
1、枚举型(enumType)枚举型是对整数区间的自定义类型,用户需为区间中的值取名枚举符一旦定义则不能改变,所以它常常代替整数常量使用,这也是设计枚举型的真正用意
2.
2、C-串与string在C语言中,字符串是用字符数组来处理的,是在字符数组最后元素是’0’的字符数组,所以用字符数组表示字符串,必须比实际字符串多一个字符的内存空间,Eg charbuffer
[7]=”Hello!”;字符串“Hello!”长为6,在末尾加’0’存入buffer字符数组中字符指针存储字符数组(或字符串)的首地址,Eg char*str=”Hello”;Cout*strendl;//显示HCoutstrendl;//显示Hello字符串的相关函数引用字符串头文件,就可以对字符串进行__、赋值,修改、比较、链接等一系列操作
①、对指针的运算指针的增减是对该指针指向的类型的实体大小为单位的Float*+6增加了24字节6*4字节Int*+5增加了20字节5*4字节
②、指针的限定(PointerRestrictions)常量指针与指针常量
③、引用(Referen__s)与指针的不同之处是,他只是实体的一个别名,他的地址和实体的地址是相同的及他自己的地址是无法操作的Inta=10;Intb=a;Coutab是相同的,他们是指向同一内存的两个不同的名称而已第3章计算表达(ComputationExpressing)
1、名词解释和操作符(NameExplanationOperators)
1.
1、名词解释(SomeNameExplanation)
1、操作符(operators),也称运算符;
2、实体(entities)是一定大小的内存空间,它具有类型、或为整形,或为浮点型,或为函数型、或为自定义类型与实体想关联的名字称为变量、常量、对象、函数、指针等;
3、常量(constants)与变量想对应,变量是关联实体的名称,可以通过它对实体(即内存空间)进行读写操作,而常量也是关联实体的,不过常量只能对实体(内存空间)进行读操作,不能进行写操作;
4、表达式(expressions)是一些操作符和操作数按规则排列的序列;
5、赋值表达式;
6、条件表达式If、for、while、(?)等
7、逗号表达式
8、左值和右值(leftvalueandrightvalue)左值不但右空间实体,而且具有读写访问权;如变量所以,常量虽然有内存空间实体,但是只能读,没有写访问权,所以,不能做左值右值可以不占据内存空间的临时量或字面量,可以是不具有写访问权的空间实体,如常量
2、操作符汇总(OperatorsSum__ry)分类按操作目分单目操作符;双目操作符;三目操作符按结合方式分从右向左结合操作符;从左向右结合操作符所有的单目、赋值和三目操作符是按从右向左结合的,其他为左结合式的操作符的优先级和结合性-表优先级操作符N目操作符结合性1::双目左-右
2.-[]双目左-右3++--~!-+*sizeofnewdeletecastname_casttype单目右-左
4.*-*双目左-右5/*%双目左-右6+-双目左-右7双目左-右8==双目左-右9==!=双目左-右10双目左-右11^双目左-右12|双目左-右13双目左-右14||双目左-右15:三目右-左16(赋值)=*=/=%=+=-====|=^=双目右-左17Throw双目左-右18双目左-右第二部分过程化编程(ThePro__duralProgramming)第4章函数机制(FunctionMechani__)
1、实质C++的函数其实就是一个过程体.
2、函数形态四种形态返回类型func(参数列表)返回类型func()Voidfunc(参数列表)Voidfunc()
3、传值参数所谓传值就是函数被调用之时,用克隆实参的办法来创建形参克隆实参就是用实参来创建形参,而实参本身是没有任何改变
4、指针参数指针和引用参数指针参数,就是将参数的地址传递给函数,函数可以间接的使用传来的地址对地址中的数据进行操作,典型的就是数组做参数[注]数组做参数,不是将整个数组传给函数使用,而是将数组的首地址传给函数,函数就可以对非函数区的数据进行操作插曲const关键字的功能
5、运行时内存布局(RuntimeMemoryLayout)进程空间代码区(codearea)全局数据区(dataarea)堆区(heaparea)栈区(stackarea)一个运行程序在内存中表示为这四个空间区域代码区存放程序的执行代码,执行代码就是索引了的一个个函数块代码,它由函数定义块的编译得到;全局数据区存放全局数据、常量、文字量、静态全局量和静态局部量;堆区存放动态内存,供程序随机申请使用;栈区存放函数数据区(即局部数据区),它动态地反应了程序运行中的函数状态,其运行轨迹正好用来观察函数的调用与返回,从而研究其函数机制函数指针Dataarea、Heaparea和Stackarea这三个区域称之为数据区域,Codearea称为代码区域指向数据区域的指针,称之为数据指针(PointertoData)指向代码区域的指针,指向代码区域的指针称为指向函数的指针,简称函数指针(PointertoFunction)Eg int*finta;char*copychar*s1char*s2;
6、函数重载重载函数时,只要参数个数不同,参数类型不同,参数顺序不同,然而返回类型不同则不允许函数重载Eg voidfuncinta;//OKvoidfuncchara;//OKvoidfunccharaintb;//OKvoidfuncintacharb;//OKcharfuncinta;//与第一个函数冲突所以,函数重载,看的是函数的参数是否不同,才能重载第5章性能(Perfor__n__)
1、内联函数的使用(使用inline)
2、使用STL中容器
3、C++标准库函数的使用,尤其是字符串函数的使用
4、动态使用内存,节省内存空间第6章程序结构(ProgramStructure)
1、数据区的数据内存管理全局数据变量全局数据常量静态全局数据变量静态局部数据变量局部数据变量作用域与生命期(ScopesLifetime)命名空间,解决数据名称和函数冲突问题第三部分面向对象编程技术(TheO__ect-OrientedProgramming)第7章类(Classes)
1、使用类和创建类的意义类的思想就是让我们可以自创建类型,而且创建的类型是和实际要处理的事物相关的
2、从结构到类(FromStructureToClass)但是,使用structure能有数据成员,没有对数据成员的操作,而要对其进行操作,必须在单独编写相关的处理函数
3、定义类Class机制不仅可以定义数据的符合,还可以定义实现对数据的操作
4、成员函数只要是在类定义中包含的函数,就默认为内联的性质所以,内容比较简单常被调用的函数,可以写在类内部,比如,构造函数和析构函数,而其他的函数可以写在类之外
5、常成员函数(ConstMemberFunction)该函数说明,不能对类对象进行改变,能写成const函数尽量写成这种类型的函数
6、重载成员函数和操作符重载操作符,其优先级和结合性不会改变
7、访问控制将变量或函数设置成私有的,只能被类所使用,而从类所定义出来的对象是没有访问权的
8、静态成员变量和函数该变量和函数是属于类的,不用定义对象也可以对他们进行访问
9、友元(Friends)成员函数是以对象为自我,是和对象捆绑一起使用的所以,一个成员函数被一个类定义之后就不能被其他类所定义使用但是,如果两个类或多个类都有该函数的相同操作,将会增加开销和代码冗余,这时,可以使用友元函数而定义友元函数可以访问其他类成员,实现不同类之间的相互沟通,虽然破坏了纯面向对象的思想,可是也增进了不同类之间的相互交流,更体现出了人性化的一面.也可以声明一个友元类,那么整个类就可以访问另一个类的私有成员友元函数或友元类,可以为多个其他类所使用,他们的定义式__于类的第8章对象生灭(O__ectBirthDeath)构造函数和析构函数的合理使用第9章继承(Inheritan__)
1、对于派生类对象构造函数和析构函数的调用顺序,一定要注意
2、派生之后的访问权限基类成员在派生类中的访问控制属性基类访问属性继承类型publicprotectedprivatepublicpublicprotected隔离(无访问权)protectedprotectedprotected隔离(无访问权)privateprivateprivate隔离(无访问权)第10章基于对象编程(O__ect-BasedProgramming)第四部分高级编程(TheAdvan__dProgramming)第11章多态(Polymorphi__)
1、继承召唤多态(Inheritan__SummonupPolymorphi__)多态一个操作随着所传递或捆绑的对象类型的不同能够做出不同的反应,其行为模式称为多态
2、虚函数只有类的成员函数才能声明为虚函数静态成员函数是不能声明为虚函数;因为静态成员函数不受对象捆绑内联函数不能是虚函数;构造函数不能是虚函数;析构函数可以是虚函数而且通常声明为虚函数
3、类型转换(TypeConversions)
3.
1、动态转型(dynamic_cast)
3.
2、静态转型(static_cast)
3.
3、常量转型(const_cast)第12章抽象类(Abstractclass)第13章模板(Templates)第14章异常(Ex__ption)。