热度 16
2014-3-31 15:38
1022 次阅读|
2 个评论
2014年计算机二级C++复习过程中总结的一些二级的操作题的考试要点。 1.strcpy( char *p,char *q) 两个参数只需要传递要拷贝的字符串的首地址指针即可,将q拷贝到p当中。 2. 排序算法 非递减排序 每两个相邻的比较,大的移到后面,第二次比较时去除最后的那个,因此第二个循环是length-i. for(i=0;ilength;i++) { for(j=0;jlength-i;j++) { if(a a ) { temp = a ; a =a ; a =temp; } } } 选择排序:从a 开始,一个个与后面所有的比较,大的话就移到后面。 for(i=0;ilength;i++) { for(j=i;jlength;j++) { if(a a ) { temp = a ; a =a ; a =temp; } } } 3.静态数据成员的初始化:在类A内部定义static int count; 在类外进行初始化:int A::count =0; 属于类,不属于对象,实现多个对象数据共享; 静态成员函数访问形式如下: A::GetNum(); 只能访问静态数据成员,静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员,没有this指针。 4.常对象:定义时必须进行初始化,不能更新;通过常对象只能调用类中的常成员函数; 常数据成员需要在初始化表里面进行初始化,在构造函数名后面加上:常数据成员(值); 常成员函数:是只读函数,可以读取数据成员的值,不可以更新数据成员的值,不能调用该类中没有const修饰的其他成员函数;实现时也要带const. 5.友元函数:没有this指针,不属于类函数,可以访问类的数据和函数。 友元函数和类内部函数的内部的对象可以访问内部的私有成员。 6.派生类构造函数:派生类名::派生类名(总参数表):基类名(参数表),成员对象名(参数表)。 7.函数的返回值为一个类的引用时,如A A::operator = (const A b) ,需要用return *this;返回 int b=a;表示b为a的引用,引用在定义时必须赋值,以后对b操作就相当于对a操作。 8.模板声明template 模板形参表 模板形参有如下形式:typename 参数名;class 参数名;类型修饰 参数名; 类型修饰指具体数据类型,如int,char等。 前两者是虚拟类型参数,是具体类型的抽象,可以用作函数的返回值类型,形参类型,函数体内变量类型。 调用时,如果根据函数实参表无法确认模板实参的值,必须有模板实参表。 类模板中形参表中的形参还可以作为数据成员的类型。 在类体外定义成员函数的格式如下: 主要是加上模板形参表,但是表内可以直接使用参数名,不需要包含关键字typename或者class. template 模板形参表 返回值类型 类模板名模板形参表::成员函数名(函数形参) {} 类模板实例化必须要有模板实参表,如果设置了默认值,也必须有.