c++中const都使用

在c++中,const可以用在很多地方。我认为最重要的是两个方向

1.变量上

2.函数上

下面分别来说明。

用在变量上时

#include "pch.h"
#include<string>
#include <iostream>
using namespace std;
int main()
{
	const int a=1;     //最简单的情况  可以叫做常量a,必须在定义的时候赋值
	const string b;    //这里为什么不需要赋初值呢?因为string是个类,创建对象的时候会调用默认构造函数 但是不可以给b赋值
	const int& c = a;//常量引用,不可以通过c来修改a,因为a本来也是const类型的,不写const编译器会报错
	int e;
	e = 1;
	int& f = e;      //正常的引用
	f = 2;           //可以通过f来修改e的内容
	int& const g = e; /*这种写法其实没有什么实际东西,int类型前面没有const,所以我们可以通过f来修改e的内容,
					  而f前const代表f本身的内容不可修改,这句话,大家可能不太理解。不要紧,不需要深入理解,
					  int& g=e;和上面这句话是一个意思的
	                   */ 
	g = 2;
	const int& h = e;//顶层const不可修改e的内容
	//h = 2;          //这句是错误的

	//把下面这段程序理解清楚,const的用法就清楚了
	int m;
	const int* i = &m;     //不可以通过i指针修改m的内容
	// *i=4;  这句话是错误的
	int* const j =&m;       //不能够修改j指针本身的地址值
	*j = 4;   //这句话是正确的
	//++j;   这句话是错误的
	const int* const k = &m;   //这句话集合了上面的两种情况,不可通过k修改m,也不可以修改k实际存贮的地址

}

用在函数上时

#ifndef _Consttry
#define _Consttry
#include<iostream>
#include<string>
using namespace std;
class Const_try {
private:
	string a;
	int b;
public:
	Const_try(const string& c,int d):   //这里传进来的参数c用了const ,所以我们在Const_try类中不可以修改c字符串的内容
		a(c),b(d)
	{}
	int returnb()const {           /*这里的const代表什么意思呢,我们不可在returnb这个函数中修改private成员变量的内容,
								   仅仅是返回一个值而已,你也可以理解为this这个指针是const类型的*/
		return this->b;
	}



};
#endif // !_Consttry

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值