1 定义类A时,声明了一个常成员函数如void fun() const ;
但是在定义时写成
void A::fun()
{
;
}
这时,编译器会报错。应写为void A::fun() const { ; }
即在声明和定义时应保持一致。
2 静态成员变量在被调用之前,必须在类外初始化
如
class A
{
pubilic:
A(){ ;}
void fun ( ) ;
static int tmp ;
}
void A::fun()
{
tmp = 3;
}
int main()
{
return 0 ;
}
此时,编译器报错,应在fun调用tmp之前初始化tmp;
int tmp = 0 ;
void A::fun()
{
tmp = 3;
}
这样便不会报错。
3 上述类A中的tmp不仅可以通过定义一个A类对象a,然后这样调用a.tmp,还可以直接在A 加作用域符如A::tmp这样调用静态变量tmp
4 静态成员函数只能调用静态成员变量。
5 const成员函数
可引用const变量,但不能改变cosnt变量的值;
可引用非const变量,但不能改变非const变量的值;
可引用const对象的数据成员,但不能改变其值;
非const成员函数
可引用const变量,但不能改变cosnt变量的值;
可引用非const变量,也可以改变非const变量的值;
不允许引用const对象的数据成员,那么更不能改变其值。
6 基类中的纯虚函数与派生类中的函数参数个数必须相同。