1.const修饰符
(1)定义符号常量,常量在程序执行期间不可改变。
const float PI = 3.14; // 定义时赋值
(2)const char* pc = s; // 指针所指向的字符串为常量
char *const cp=s; // 将指针本身说明为常量
2.带缺省参数的函数
如果给某个参数一个缺省值,那么其后的所有参数都需要赋给缺省值,否则编译时出错。
void f ( int x,int y,int r=10,int c) ; // 错误
3.函数重载
只有返回类型不同的函数不能重载。
4.new 和 delete
int *p;
p=new int;
delete p;
n=new int[10];
delete [] n;
str = new char [strlen(s)+1];
strcpy(str,s);
5.构造函数
构造函数没有返回类型,void 也不行。
可以重载,可以有缺省参数。
6.析构函数
析构函数没有返回值,不带参数,不能重载。
const
(1)常成员函数
class A
{
……
int func() const;
};
(2)常对象
7.对象的静态成员
(1)静态数据成员
class A
{
……
static int count;
};
int S::count = 0; //在类外主函数前对其初始化
int main()
{
……
}
访问的时候使用“类名::”
A::count = 0;
一个类的静态数据成员为该类所有对象共有,在内存中只有一份拷贝。
(2)静态成员函数
只使用静态数据成员的函数。
静态成员函数不具有this指针。
static void func()
{
……
}
8.友元函数
friend int func(A& a,A& b)
9.期中错题
1.将构造函数说明为纯虚函数是没有意义的。
(T)
2.友元函数不是类的成员函数,只是独立于该类的一般函数。
(T)
3.在面向对象系统中,对象的属性是________。(B)
A.对象的行为特性
B.和其他对象相互区分的特性
C.与其他对象交互的方式
D.和其他对象相关联的方式
4.如果在函数中定义的局部变量与命名空间中的变量同名时,()被隐藏。
命名空间中的变量
5.以下说法正确的是?(A)
A.在构造函数中调用虚函数,不是动态联编
B.在虚函数中不能使用this指针
C.构造函数和析构函数都不能是虚函数
D.抽象类的成员函数都是纯虚函数