常量对象:
定义该对象时在前面加const关键字,该对象的值不能被改变。常量对象不能调用非常量成员(静态成员除外)
const A name;
常量成员函数:
类的成员函数说明后面加const关键字。常量成员函数执行期间不能修改其所作用的对象,即不能修改成员变量的值(静态成员变量除外,因为静态成员是被类所共有的),也不能调用同类的非常量成员函数(静态成员函数除外)。
public : void func() const;
两个成员函数,名字和参数列表都一样,一个有const,一个无const,算重载
class A {
int a;
public:
A(int a1){
a = a1;
}
void func(){
cout<<"come to A func"<<endl;
}
void func() const{
cout<<"come to A func const"<<endl;
}
};
int main() {
const A a(3);
a.func();//输出
come to A func const
A b(4);
b.func();//输出
come to A func
return
0;
}
}
常引用:
常用来作为函数的参数。对象作为参数需要调用复制构造函数,效率低。用指针作参数,代码不好看。对象引用作为参数有一定的风险性,不小心修改了形参,实参也会发生改变,因此常引用是最好的选择。