读书人

关于const函数的一个疑问?解决方法

发布时间: 2012-04-21 14:34:44 作者: rapoo

关于const函数的一个疑问?
下面这段程序,为什么红色语句不会报错,而蓝色语句会报错!!!!

C/C++ code
#include <iostream.h>const int Test1()  {    return 1;}int Test2() const {    return 1;}int main(){    int x1,x2;    [color=#FF0000]x1 = Test1();[/color]    [color=#0000FF]x2 = Test2();[/color]    return 0;}


[解决办法]
const 放函数后面这个只有对类成员函数才可以。
[解决办法]
const 放函数后面这个只有对类成员函数才可以。
C/C++ code
const int Test1()  {    return 1;}class C{public:    int Test2() const     {        return 1;    }};int main(){    int x1, x2;    C c;    x1 = Test1();    x2 = c.Test2();    return 0;}
[解决办法]
如果不放到类中还是会报错的,和调不调用x2 = Test2()无关
C/C++ code
#include <iostream.h>const int Test1()  {    return 1;}int Test2() const  //这里还是会报错的,和调不调用x2 = Test2()无关{    return 1;}int main(){    return 0;}
[解决办法]
1.const int Test1()
对返回值加const没有任何意义

2.int Test2() const
对非成员函数无效,对成员函数的意义其实是这样的:
int Test2(const this);

读书人网 >C++

热点推荐