1、第一章1.动态分配内存使用 new 关键字:1 )为一个对象分配内存:指针名 = new 类型名;2)为一个对象数组分配内存:指针名 = new 类型名长度; 使用 delete 关键字: 1)释放对象占用内存: delete 指针名;2)释放一个对象数组占用内存:delete 指针名。注意:new 和 delete 必须成对出现,且 delete 释放一个对象时,会调用析构函数。2.引用数据类型 int 则 b 是对 a 的引用3.什么是左值和右值?左值:必须是能被计算和修改的。右值:右值表达式的值必须是固定的。4.指向常量的指针指向常量的指针一般形式:const int *p注意:*p 不
2、能作为左值。5.常量指针常量指针一般形式: int * const p注意:*p 不能作为左值。6.指向常量的常量指针常量指针一般形式:const int * const p注意:*p 不能作为左值。7.泛型算法应用于普通数组对数组进行升幂排序,反转数组内容,复制数组等要包含头文件包对数组进行降幂排序和检索要包含头文件包(1 )反转数组内容:reverse(a , a+数组长度)(2 )复制数组内容 : copy(a,a + 数组长度,b)(3 )reverse_copy(a ,a +数组长度 ,b);reverse_copy 是将数组的内容从尾到头的逆向复制(4 )数组升幂排序:sort(a
3、 , a+数组长度)(5 )数组降幂排序 : sort(b , b+ 数组长度 , greater()(6 )查找数组内容 : find(a , a+数组长度 ,value)(7 )数组内容的输出:copy(a , a+ len ,ostream_iterator(cout,“字符串“);注意:可将 ostream_iyerator 理解为输出流控制符,表示数组元素的数据类型“字符串“是数组元素间的间隔。8.数据的简单输入输出C+提高了两种格式控制方式:一种是使用 ios_base 类提供的接口;另一种是称为操控符的特殊函数,它的特点是可以直接包含在输出和输入表达式中,因此更加方便。不带参数操
4、控符定义在头文件中,带形式的定义在头文件 中三是无参数的操控符函数不能带有()名称 含义 作用Dec 设置转换基数为十进制 输入/输出oct 设置转换基数为八进制 输入/输出Hex 设置转换基数转换为十六进制输入/输出Endl 输出一个换行符 输出Resetiosflags(long flags)清除 flag 标志位 输出Setiosflags(long flags) 清除 flag 标志位 输出Setfill(char ch) 设置 ch 为填充字符 输出Setprecision(int n) 设置浮点数输出精度 输出Setw(int width) 设置输出字符间字段宽度 输出常量及其含义
5、常量名 含义Ios_base : left 输出域左对齐Ios_base :right 输出域右对齐Ios_base :showpoint 浮点数输出必须带一个小数点Ios_base :showpos 在正数前面加+Ios_base :scientific 使用科学计数法表示浮点数Ios_base :fixed 使用定点形式表示浮点数第二章1.string 对象(1 )string 对象包含于#include头文件包中(2 )计算字符串长度的函数:size() ,使用方法是 字符串.size()(3 )返回字符串子串的函数:substr(起始位置, 结束位置)注意:给出的起始位置必须位于字符串
6、中,否则出错。如果结束位置大于字符串的长度,则自动截取到字符串尾部。(4 )字符串查找函数:find( 要查找字符串, 开始查找的位置)(5 )String 类有一对用来指示其元素位置在的基本函数成员:begin()和 end(),Begin()指示第一个元素,end() 指示最后一个元素之后。如果 begin()不等于 end(),则算法首先作用于 begin()所指元素,然后指向下一个元素,知道 begin()等于 end()。所以元素存在于半开区间begin,end)中。(6 )char 定义的字符串使用“0”作为结束标记。String 不是。2.使用 complex 对象(1 )这个对
7、象包含于头文件#include中 。使用方法:complex 对象名(实部值,虚部值)Complex 使用成员函数 real()和 imag()函数输出实部和虚部值(2 )string 类型的数组的 swap()成员函数可以交换连个数组分量。第三章1.函数的参数及其传递方式(1 )对象作为函数参数:将对象名作为函数参数,这种传递是单向的,不会改变实参的值。(2 )对象指针作为函数参数:将对象地址作为函数参数,这种传递会改变实参的值。(3 )引用作为函数参数:定义时,形参是别名;调用时,实参是对象名。实参对象和形参对象代表同一个对象,所以改变形参对象就是改变实参对象。2.使用 const 保护数
8、据:使用 const 修饰符传递参数,只能使用参数而无权修改参数。这样能提高系统安全。3.函数返回值(1 )函数可以返回一个引用,返回一个引用的主要目的是为了将该函数用在赋值运算符的左边。函数原型表示方法:数据类型 A.Set(25,25); B = A数组对象:Point A3使用指针和取址运算符:point *P = (2 )对象可以作为函数参数,如果参数传递采用传对象值的方式,在被调用函数中对形参所作的改变不影响调用函数中作为实参的对象。如果传得是对象的引用(地址)当参数对象被修改时,相应的实参对象也会被修改。C+建议使用引用,在前面加上const 这样可以避免修改原来的数据成员。(3
9、)对象作为函数参数时,可以使用对象,对象引用,和对象指针。形式为:Void print(Point a)a.Display;/对象作为参数Void print(Point /对象引用作为参数Void print(Point *p)p-Display;/对象指针作为参数(4 )一个对象可以作为另一个类得成员。8.类的性质(1 )类本身的成员函数可以使用类所以的成员(2 )类得对象只能访问公有成员函数,例如输出 x 只能使用 A.Getx(),不能使用 A.x(3 )其他函数不能使用类的私有成员,也不能使用类得公有成员函数,他们只能通过类的对象使用类得公有成员函数。(4 )虽然一个类可以包含另一个
10、类的对象,但是这个类也只能通过它被包含的这个类得对象使用那个类的成员函数,通过成员函数使用数据成员,例如:Loc.Set(x,y)(5 )不完全类得声明:只要当使用类产生对象时,才进行内存分配,这种对象的建立过程称为实例化。(6 )有时候将类作为一个整体使用而不存取取成员。(7 )不完全类的定义没有类体。不完全类声明的类不能实例化(8 )类也可以是空的,不包含任何内容。(9 )类中的一个成员名可以使用类名和作用域运算符来显示的指定,这称为成员名限定。例如:void MyClass:set(int i)MyClass:number = i/显示的指定访问 MyClass 类中的标示符 numbe
11、r9.对象,类和消息(1 )接收对象名,调用操作名和必要的参数是对象传达消息的一般组成部分。第五章1.对象成员的初始化(1 )可以在一个类中说明具有某个类的类型的数据成员,在 A 类中说明对象成员的一般形式如下:Class A类名 1 成员名 1;类名 2 成员名 2;。类名 n 成员名 n;A 类得构造函数的形式如下:A:A(参数表 0):成员 1(参数表 1),成员 2(参数列表 2),成员 3(成员列表 3)其他操作。(2 )静态成员:简单成员函数是指声明中不含 const ,volatile ,static 关键字的函数,如果类得数据成员或成员函数使用关键字 static 进行修饰,这
12、样的成员称为静态成员或静态成员函数,统称为静态成员。(3 )静态数据成员只能说明一次如果在类中仅对静态数据成员进行声明,则必须在文件作用域的某个地方进行定义。在进行初始化时,必须进行成员名限定。例如:int Test : x = 25也可以直接在构造函数中使用类成员限定符对其进行初始化。例如:Test(int a,int b)Test:x = a; n = b(4 )除静态数据成员的初始化之外,静态成员遵循类得其他成员所遵循的访问限制,虽然还没有建立对象,但是静态成员已经存在。(5 )Static 不是函数类型中的一部分,所以在类声明之外定义静态成员函数时,不使用 static。在类中定义的静
13、态成员函数时内联的。(6 )类的任何成员函数都可以访问静态成员。因为静态成员函数没有 this 指针,所以静态成员函数只能通过对象名(或指向对象的指针)访问该对象的非静态成员。2.友元函数(1 )友元函数可以存取私有成员,公有成员和保护成员。其实友元函数可以是一个类或函数,尚未定义的类也可以作为友元。(2 )友元函数在类中声明,但是他并不属于类得成员函数,所以可以在类得外面想普通函数一样定义这个函数。(3 )将成员函数作为友元:一个类得成员函数(包括构造函数和析构函数)可以通过使用 friend 说明为另一个类非友元。(4 )将一个类说明为另一个类的友元:可以讲一个类说明为另一个类得友元,这时
14、整个类得成员函数均具有友元函数的性能。声明形式为:friend class 类名;3.Const 对象(1 )可以造类中使用 const 关键字定义数据成员和成员函数或修饰一个对象。一个const 对象只能访问 const 成员函数。(2 )常量成员:常量成员包括常量数据成员,静态常数据成员和常引用。静态常数据成员仍保留静态成员函数,需要在类外初始化。常数据成员和常引用只能通过初始化列表来获得初值。(3 )常引用作为函数参数:使用引用作为函数参数,传得是地址。有时希望将参数的值传递给函数使用,并不允许函数改变对象的值,这是可以使用常引用作为参数。例如:void Display(const double /定义 type 的向量表Vectorname(length);/定义具有 length 哥 type 的向量,元素初始化为 0Vectorname(length a);/定义具有 length 个 type 的向量元素初始化为 aVectorname1(name);/使用已定义的向量 name 定义 name1(3 )不能使用列表初始化向量,但可以先初始化一个数组,然后把数组的内容复制给向量。例如:int IA10 = 1,98,1,20,152,20,48,10,14,30;