2014年计算机二级C++复习过程中总结的一些二级的操作题的考试要点。
1.strcpy( char *p,char *q) 两个参数只需要传递要拷贝的字符串的首地址指针即可,将q拷贝到p当中。
2. 排序算法 非递减排序
每两个相邻的比较,大的移到后面,第二次比较时去除最后的那个,因此第二个循环是length-i.
for(i=0;i<length;i++)
{
for(j=0;j<length-i;j++)
{
if(a[j]>a[j+1])
{
temp = a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
选择排序:从a[0]开始,一个个与后面所有的比较,大的话就移到后面。
for(i=0;i<length;i++)
{
for(j=i;j<length;j++)
{
if(a>a[j])
{
temp = a;
a=a[j];
a[j]=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 <模板形参表>
返回值类型 类模板名<模板形参表>::成员函数名(函数形参)
{}
类模板实例化必须要有模板实参表,如果设置了默认值,也必须有<>.
用户1740774 2015-9-11 10:12
dingxueping_142629027 2014-4-6 18:44
用户1687272 2014-4-3 10:13