C++基础1:从const关键字看变量的基础单元--类

之前在C++基础开篇中,我提到,C++语言 变量的基础单元是类,大家一定要牢记这个观念,因为C++的很多语法都是围绕的着类展开的,下面看看const关键字在类上是怎么用的。

const关键字在c语言里,修饰一个变量为常量,只能在定义的时候,给变量初值,在其它的地方修改变量的值会报编译错误。

int main()
{
	const int a = 10;
	
	a = 50}

如上面a=50;就会报错。

编译器处理这种内建类型的const,比较简单。 只要检查在非初始化的地方,是否更改了变量值即可。

如果定义一个类的时候,用const修饰,表示这个类的数据是不能被修改的。

但是类是个整体,除了包含数据,还包含方法。

除了可以直接改变量,还可以通过方法改变量。

class point
{
public:
	void set_x(int val)
	{
		x = val;
	}
publicint x;
	int y;
}void main()
{
	point pp;
	pp.x = 10;
	pp.set_x(20);
}

如上面的代码, pp.set_x(20)就是通过方法改类的数据。 【这里为了讲解方便,类的数据做成了public。非必须的情况下,类的数据都要放到private里】

C++如何解决这个问题呢?

它提供了const成员函数,这个概念。

凡是被标记了const的成员函数,函数体内是无法修改类数据的。

class point
{
public:
	void set_x(int val) const
	{
		x = val;
	}
publicint x;
	int y;
}void main()
{
	point pp;
}

如上 在set_x函数中加了const修饰,上面的代码就会提示编译错误,因为在const函数中,修改了类的数据。

有了const成员函数,const的故事就可以讲通了。

当某个类变量被定义成const变量,那么只要保证只调用类的const成员函数,就能保证类数据不会被修改。

class point
{
public:
	void set_x(int val)
	{
		x = val;
	}

	void show()
	{
		cout << "x = " << x << " y = " << y << endl;
	}
privateint x;
	int y;
}void main()
{
	const point pp;
	pp.show();
}

如上代码所示,pp变量只能调用show函数,当调用set_x函数时,报错。

好了,const的故事就讲的这里,敬请期待后续内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值