C++成员函数后的const
作者:网络转载 发布时间:[ 2014/5/4 10:36:27 ] 推荐标签:C++ 函数 net
以下的每一点会给出代码示例说明
一、c++成员函数后的const有以下特点:
1.隐含的this指针以const 类名的类型传递
2.const 只能声明成员函数,不能声明静态函数
(static函数不能有const修饰符,const 成员函数是包含this指针的,这明显不被static函数允许)
3.const 成员函数不能修改对象的任意非静态成员
4.const 成员函数不能调用非const 成员函数
二、另外,const对象与const成员函数相关的内容
1.由const 类名构造的对象只能调用 const方法
2.const对象的构造函数和析构函数无需用关键字const声明
1-1
|
//error C2662: “Text::print”: 不能将“this”指针从“const Text”转换为“Text &”
#include "stdafx.h"
#include "iostream"
using namespace std;
class Text{
public:
void printconst(void)const{cout<<"hello"<<endl;}
void print(void){cout<<"hello"<<endl;}
private:
int k;
};
//上面定义了类Text的一常量对象
int main(void)
{
a.printconst(); //ok
a.print(); //error
//上面a.print()调用是非法的
return 0;
}
|
1-2
|
//error C2272: “printconst”: 静态成员函数上不允许修饰符
#include "stdafx.h"
#include "iostream"
using namespace std;
class Text{
public:
void static printconst(void) const{cout<<"hello"<<endl;}
void print(void){cout<<"hello"<<endl;}
private:
int k;
};
int main(void)
{
Text a;
a.printconst();
return 0;
}
|
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。

sales@spasvo.com