使用const——20190910

使用Const,把有关数据定义为常量(常变量,常对象,常函数)。

既要使数据能在一定范围内共享,又要保证它不被任意修改。

1、常对象

2、常对象成员

3、指针对象的常指针

4、指向常对象的指针变量

5、对象的常引用。

回顾,常变量,const int PRICE=40;在程序中 PRICE的值不会被修改。

凡希望保证数据成员不被改变的对象,可以声明为常对象。

常对象中的所有成员的值都不能被修改。

常对象必须要有初值,如 Time const t1(12,13,14);const Time t1(12,34,46);

要引用常对象中的数据成员,需将该成员函数声明为const型函数,常成员函数。

常成员函数可以访问常对象中的数据成员,但不允许修改常对象中的数据成员的值。

常数据成员。限制。const函数。

#include <iostream>
using namespace std;

class Time
{
private:
	int hour;
	int minute;
	int sec;
public:
	Time():hour(0),minute(0),sec(0){};
	Time(int h,int m,int s):hour(h),minute(h),sec(s){};
	void set_time(int h,int m,int s)
	{
		hour=h;
		minute=m;
		sec=s;
	}
	void show_time() const
	{
		cout<<hour<<":"<<minute<<":"<<sec<<endl;
	}
};

int main()
{
	const Time t1(10,10,10);

	t1.show_time();

	return 0;
}

常指针:将指针变量声明为const型,指针值始终保持为其初值,不能改变;

类名* const 变量名;(常指针,始终保持其初值)

int main()
{
	Time t1(10,12,15),t2;

	Time* const pt=&t1;//pt是常指针

	pt=&t2;//错误,pt应始终指向同一个对象

	return 0;
}

指针值不可变,指针指向的对象值是否可以改变呢,这取决于指向的对象。

常见用途作为函数的形式参数,不允许在函数执行的过程中改变指针变量的值。

指向常变量的指针变量。

定义指向常变量的指针变量的一般形式为:

const 类名 * 变量名/ 类名 const *变量名

const char c[] ="hello";

const char* pt=c;//指向了常变量的指针指向常变量。

如果一个变量已被声明为常变量、对象,只能用指向常变量、对象的指针指向它,而不能用指向非const型变量,对象的指针去指向它。

发布了140 篇原创文章 · 获赞 26 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_41211961/article/details/100715871