const位置的含义


int num = 1024;
const int num2 = num1; //只能第一次赋值 
num2 = 2048 // 报错

const int * p = # //const 在 * 前面时,指针的位置可以修改,但不能通过指针修改指向的变量 
int const * p = # //同上 

int * const p = #//const 在 * 后面时,指针的位置不可以修改,但可以通过指针修改指向的变量 

int const * const p = &num //const 在 * 两侧时,指针的位置不可以修改,也不能通过指针修改指向的变量 
	

void fun(const int num) //函数体内不可以修改num的值 
{
	
}

void fun(const object &o) //不能修改o的成员变量,也不能调用o的非const成员函数 ,不需要o的一个副本,提高效率 
{
 
} 


const Object & fun(const Object &o) //返回应用,不需要创建o的副本,提高效率 
{
	return o;
}

class Obj
{
	public:
		void modify() const //不能修改成员变量的值  cosnt成员函数可以被fun(const object &o)调用 
		{
			a = 1;//报错 
		}
	private:
		int a; 
} 






 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章