const 总结

一、const修饰普通变量

定义某一变量为常数,必须初始化,一旦定义不可再修改

二、const修饰指针

假设指针p, 根据const在*左侧还是右侧判定。在左侧const int* p=&a;则指针指向的值a不可被改变,但指针内容可以变,如int b=10; p=&b;。在右侧,则指针内容不可修改,如之前指向变量a,那么只能一直指向a,不能改变。简单记忆就是左定值,右定向

三、const修饰类成员变量

const修饰成员变量,不能在声明时初始化,只能通过构造函数初始化,且不能通过赋值来初始化,唯一的格式如下

class A{
public:
	const int Size;
	A(int s);
	~A();
};

A::A(int s):Size(s){}

//错误初始化!!!!!!!!!!
A::A(int s){Size=s;}

四、const修饰类静态成员变量

#include<iostream.h> 

class Year{ 
private: int y; 
public: static int const Inity;
public:  Year() {  y=Inity; } 
};

int const Year::Inity=1997;//静态变量的赋值方法,注意必须放在类外定义

void main(){ 
cout<<Year.Inity<<endl;//注意调用方式,这里是用类名调用的。
}

五、const对象,常量对象

const MyClass p;,该对象只能调用const成员函数,不能调用普通成员函数。

六、const函数:

(1) const 在函数中根据修饰位置分为三种,const int fun(const int a) const
(2) const成员函数不可以修改对象的数据,不管对象是否具有const性质。它在编译时,以是否修改成员数据为依据,进行检查。
(3) 然而加上mutable修饰符的数据成员,对于任何情况下通过任何手段都可修改,自然此时的const成员函数是可以修改它的。

6.1 修饰返回值:const int fun();,不能修改返回值,即返回值不能是左值。
6.2 修饰函数形参:int fun(const int a);,函数体内不能修改形参a的值。
6.3 修饰类的成员函数:int fun() const;, 函数体内不能修改成员变量的值。只有成员函数才可以在后面加const,普通函数后加const无意义。此外,const函数只能调用const函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值