C++ const常,常变量,常指针变量,指针常变量,作类成员,常方法,常对象

const
常:用于修饰变量

常变量
必须初始化

const 类型 变量名=值;
const int a=100;
a=200;//错误:
a为常空间

常指针变量

const int* pa=&a;

PS:const修改了int*,所以pa空间还是变量空间可以改变,但不能通过pa修改指向的空间内容

*pa=1000;//报错

指针常变量

int* const pa=&a;

PS:const修改了pa,所以pa空间是常空间,不能修改,但可以通过pa修改指向的空间内容

pa=&b;报错

Const常量
不可改变,在定义时初始化

Const作成员
Const变量作成员变量必须初始化
Const成员变量也属于对象成员
Const成员变量必须显示的由构造器初始化

class 类名 {
public:
类名():常量名(10) //初始化列表来初始化常变量
}

Const方法
只读不可修改
可以修改(指针)指向内容。不可修改指针内容

返回值 函数名(形参) const

Const对象

Const 类名 对象;

该对象中的属性都不能通过该常对象修改,也不能访问普通方法,只访问常方法

#include<iostream>
using namespace std;
//const作成员变量,注意初始化
//常方法内只读操作,不可修改
//可以修改(指针)指向内容,不可修改变量内容
class array
{
private:
	const int max;//属于对象空间,只能由对象访问
	int* pbuf;
	int num;
public:
	//默认形参值int m=10
	array(int m=10):max(m),num(0)//初始化常变量
	{
		pbuf=new int[10];
	}
	int& operator[](int index)//给空间取别名,可以通过别名修改或引用内容
	{
		return pbuf[index];
	}
	//该方法中只能读
	int size() const
	{
		//max=100;不可修改
		//num=100;不可修改
		pbuf[0]=100;//可以修改 指向内容,不可修改变量内容
		return num;
	}
	void show()
	{
		cout<<num<<endl;
	}
};

int main()
{
	array a;
	a[0]=100;
	cout<<a[0]<<endl;
	const array b;//该对象空间的内容都不发生改变
	//b.show();//调用失败,常对象只能调用常方法,
	b.size();
	return 0;
}

执行结果

100
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值