c++基础:15.const与mutable

指针与const

//demo.cpp
int main()
{
	
	int i = 1024;
	//const修饰的是指针指向的对象,不能解引用修改i的值
	const int * p = &i;
	//*i = 10;
	//指针是一个常量,不能修改指针的指向
	int * const p2 = &i;
	int n = 1233;
	//p2 = &n;
}

const 在类中的使用方法

//demo.cpp

class Demo
{
	public:
	int GetX()cosnt
	{
		return x;
	}
	private:
	int x;
};

在方法名后面加const,表示不会修改这个类中的任何东西。

const与常量引用

#inlcude <isotream>
class Demo
{
	public:
	int GetX()
	{
		return x;
	}
	private:
	int x;
};
void print(const Demo& e)
{
	std::cout<<e.GetX();
}
int main()
{
	Demo demo;
	print(demo);
	std::cin.get();
}

编译是不会通过的,因为常量引用表示不会修改引用对象,而GetX()不是常函数,所以是可以修改对象的,所以必修要在函数名后面加const。

#inlcude <isotream>
class Demo
{
	public:
	int GetX()const
	{
		return x;
	}
	private:
	int x;
};
void print(const Demo & e)
{
	std::cout<<e.GetX();
}

mutable关键字
mutable修饰的变量,可以在常函数中修改。

class Demo
{
	public:
	int GetX()cosnt
	{
		var = 10
		return x;
	}
	private:
	mutable int var;
	int x;
};
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值