关于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);