const 使用大全
接着c/c++经验总结大全—-const使用方法(一)继续完成咱们的大业.
》修饰成员变量:
在c/c++中作为修饰成员变量出现;只能在类的初始化列表中对该成员变量进行初始化(初始化列表优先于类的构造函数的函数体执行,成员的初始化列表与成员变量的声明顺序是相同的)
修饰成员变量声明及定义方式
class 类名
{
public:
类名();
~类名();
private:
const 变量 变量名;
};
类名::类名()
:变量名(初始化)
{
}
类名::~类名()
{
}
》修饰函数
const 不仅能修饰变量还能修饰函数,修饰类的成员函数格式:
类型 函数名(…)const
作用:
1、类的成员函数后添加const,表示这个函数不会对类成员变量进行修改,只能读取类的成员变量,类的成员函数后无const则表示此函数可以对类的成员变量进行读取或修改;
2、常量对象可以调用const成员函数;否则调用普通成员函数则报错
例:
// 1、error
// getValueTest();为普通成员函数,常量对象调用出错
cTest cTest::operator + (const cTest& cO) const
{
cTest test;
// “int cTest::getValueTest(void)”: 不能将“this”指针从“const cTest”转换为“cTest &”
test.setValue(cO.getValueTest());
return test;
}
// 2、right
// getValue();为const 修饰的函数
cTest cTest::operator + (const cTest& cO) const
{
cTest test;
test.setValue(cO.getValue());
return test;
}
总结:尽量在不需要改变成员变量数据的成员函数后加const,方便以后声明常量对象可以使用
》修饰指针函数
格式:
const 类型 * 函数名();
const 修饰返回值,则返回值的内容不能被修改,只能用const 类型* 变量名=函数名()接收常量
例:
const char* getStr(void);
const char* vValue=getStr();