类成员函数后带const
2009-01-07 00:28
323 查看
——www.libcl.cn
这篇文章主要记录我对"类成员函数后带const"的理解。
例子:
class constTemp
{
int a;
public:
constTemp(int nA = 0) { a = nA ;}
void seta(int nA);
void printa()const;
};
为什么在成员函数printa()后面加多一个const?
百度一下,看了别人的解释说:“这是把整个函数修饰为const,即‘函数体内不能对成员数据做任何改动‘;且如果声明这个类的一个const实例,这时则只能调用这个类中有const修饰的函数。”
我的理解是:成员函数void printa()const;不能对函数体内成员变量int a作任何修改。
贴上我以下的测试代码:
#include <iostream>
using namespace std;
class constTemp
{
int a;
public:
constTemp(int nA = 0) { a = nA ;}
void seta(int nA);
void printa()const;
};
void constTemp::seta(int nA)
{
a = nA;
}
void constTemp::printa() const
{
cout << "a'value is:" << a << endl;
}
int main()
{
//此时声明的是一个const的对象,注意声明const对象必须确保该class有构造函数
const constTemp cTTest;
//printa()函数没修改任何成员变量所以还可以继续使用。
cTTest.printa();
//此时就不能再调用成员函数去修改成员变量,这是非法的。
//cTTest.seta(5);
cTTest.printa();
return 0;
}
该例子主要呈现的结果是:“且如果声明这个类的一个const实例,这时则只能调用这个类中有const修饰的函数。”
这篇文章主要记录我对"类成员函数后带const"的理解。
例子:
class constTemp
{
int a;
public:
constTemp(int nA = 0) { a = nA ;}
void seta(int nA);
void printa()const;
};
为什么在成员函数printa()后面加多一个const?
百度一下,看了别人的解释说:“这是把整个函数修饰为const,即‘函数体内不能对成员数据做任何改动‘;且如果声明这个类的一个const实例,这时则只能调用这个类中有const修饰的函数。”
我的理解是:成员函数void printa()const;不能对函数体内成员变量int a作任何修改。
贴上我以下的测试代码:
#include <iostream>
using namespace std;
class constTemp
{
int a;
public:
constTemp(int nA = 0) { a = nA ;}
void seta(int nA);
void printa()const;
};
void constTemp::seta(int nA)
{
a = nA;
}
void constTemp::printa() const
{
cout << "a'value is:" << a << endl;
}
int main()
{
//此时声明的是一个const的对象,注意声明const对象必须确保该class有构造函数
const constTemp cTTest;
//printa()函数没修改任何成员变量所以还可以继续使用。
cTTest.printa();
//此时就不能再调用成员函数去修改成员变量,这是非法的。
//cTTest.seta(5);
cTTest.printa();
return 0;
}
该例子主要呈现的结果是:“且如果声明这个类的一个const实例,这时则只能调用这个类中有const修饰的函数。”
相关文章推荐
- 静态成员 内联成员函数 const对象和const成员函数
- c++类成员函数后边加const
- const 在类成员函数中的使用说明
- const成员函数和mutable
- C++中的const成员函数(函数声明后加const,或称常量成员函数)用法详解
- C++重载下标操作符const & nonconst 成员函数使用比较
- C++基础之const成员函数
- C++里的静态成员函数为何不能用const?
- 类的const和非const成员函数的重载
- [C++] 类成员函数后加 const
- 类的 const 成员函数
- const关键字类成员函数
- Const 重载解析(const参数重载 和 const成员函数重载)
- C++成员函数末尾const关键字…
- C++中const修饰的成员函数
- const与指针、成员函数、#define
- C++中的const成员函数(函数声明后加const,或称常量成员函数)用法详解
- const 成员函数
- const用在成员函数后与成员函数前的区别
- 关于C++的右值、const引用、右值引用、const成员函数及相关扩展