C++成员函数后的const
作者:网络转载 发布时间:[ 2014/5/4 10:36:27 ] 推荐标签:C++ 函数 net
1-3
|
//error C2166: 左值指定 const 对象
#include "stdafx.h"
#include "iostream"
using namespace std;
class Text{
public:
void printconst(void) const{cout<<"hello"<<endl; k=1;}
void print(void){cout<<"hello"<<endl;}
private:
int k;
};
int main(void)
{
Text a;
a.printconst();
return 0;
}
|
而静态成员可以修改:
|
#include "stdafx.h"
#include "iostream"
using namespace std;
class Text{
public:
void printconst(void) const{k=1000;cout<<k<<endl;}
void print(void){cout<<"hello"<<endl;}
private:
static int k;
};int Text::k=500;
const Text a;
int main(void)
{
a.printconst();//ok
cin.get();
return 0;
}
|
输出:1000
1-4
|
//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;print();}
void print(void){cout<<"hello"<<endl;}
private:
int k;
};
int main(void)
{
Text a;
a.printconst();
return 0;
}
|
2-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;
};
const Text a;
int main(void)
{
a.printconst();//ok
a.print();//error
return 0;
}
|
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。

sales@spasvo.com