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; 
} 






 

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