const修饰的类成员函数

class TestClass
{
private:
	int Num;
public:
	void SetNumber(int ANumber) const //error
	{
		Num = ANumber;
	}
	int GetNumber() const // all right
	{
		return Num;
	}
};

 

当使用const来修饰成员函数的时候,在函数里面类成员是不能被修改的。
this指针是const类型的,能修改指针指向的内容,但是不能修改指针本身,不能this++

 

class TestClass
{
private:
	int Num;
	char chr;
public:
	TestClass(int ANumber, char AChr): Num(ANumber), chr(AChr){};
	TestClass(int ANumber, char AChr, int ANoSense)
	{
		Num = ANumber;
		chr = AChr;
	}
	void SetNumber(int ANumber) //error
	{
		Num = ANumber;
	}
	int GetNumber() const // all right
	{
		return Num;
	}
};

上述两个构造函数的意义是一样的,第二个构造函数位了重载,用了一个NoSense的参数

构造函数使用冒号列表是一种非常方便的方式

posted @ 2010-12-16 22:55  霞光照耀  阅读(414)  评论(0)    收藏  举报