const 指针
1、const修饰指针正指向的对象
2、const修饰指针里存储的地址
const int* u;
//u是一个指针,它指向一个const int,正指向的元素不发生改变
int const* u;
//与上面一样
int d = 1;
int* const w = &d;
//w是一个指针,这个指针是指向int的const指针
函数参数和返回值
1、按值传递
void f(int i){
const int& ii = i;
ii++;
}
2、返回const值
按值返回的一定不能是左值
3、传递和返回地址
无论什么时候传递一个地址给一个函数,都应该尽可能用const修饰它。如果不这样做,就不能以const指针参数的方式使用这个函数。
4、C++中的标准参数传递
void g2(const X&){}
类里的const
1、构造函数初始化列表
#include <iostream>
using namespace std;
class Fred {
const int size;
public:
Fred(int sz);
void print();
};
Fred::Fred(int sz) :size(sz) {}
void Fred::print() {
cout << size << endl;
}
int main()
{
Fred a(1), b(2), c(3);
a.print(), b.print(), c.print();
}
2、编译期间类里的常量
static const
必须在定义时初始化