const的优势:
① 被const修饰的变量是只读的,可以防止意外的修改。
② const相当于定义符号常量,可以和宏定义一样做到只修改程序开头的定义,来改变所有对应的值。
③ 宏定义做的是值替换,而const修饰的变量从汇编的角度来看只是给出对应的地址。
④ const的效率更高,编译器并不会给const变量分配内存,而是将其作为一个符号常量。
const被用于指针:
① const type* pointer
pointer所指的对象储存的值不能被修改。
② type* const pointer
指针本身储存的地址值不能被更改。
const被用于函数:
在用于函数的部分,比较重要的就是当向函数传递参数时,为了提高效率,一般把形参设置为引用类型,而有时候不想修改传入的参数,可以用const修饰形参,既保证效率,又保证稳定。
type func(const type& variable){};
const被用于类成员:
① const修饰的类成员变量不能被修改,且只能通过构造函数赋值。
class test{
private:
const type variable;
······
};
② const修饰的类成员函数不能修改其所在类的所有成员,也不能访问类的其它非const成员(const成员函数只能访问const成员),不过这个const要被放在函数名后面。
class test{
public:
type func() const;
};
暂时先记这些,其它感觉暂时用不到。