标签:c++
C++中静态成员函数不能用static修饰的原因:
static在c++中的第五种含义:用static修饰不访问非静态数据成员的类成员函数。这意味着一个静态成员函数只能访问它的参数、类的静态数据成员和全局变量。
class AAA { public: static void display(void) const { printf("m_a1 value is %d\n", m_a1); // 没有const,运行OK. // 有了const,报以下错. // error C2272: 'display' : modifiers not allowed on static member functions // 问题一: // 译语个人理解是"修饰符不可用于静态成员函数" // 但明明没有修改什么. // 报错提示语究竟是什么意思? } static int m_a1; }; int AAA::m_a1 = 100; int _tmain(int argc, _TCHAR* argv[]) { AAA::display(); return 0; }书上至少应该说过,const的这种用法(indicate 不会修改当前对象的内容),
因为static成员不是任何对象的组成部分,所以static成员不能被声明为const,毕竟将成员声明为const就是承诺不会修改该函数所属对象
静态成员函数不能用const修饰 ,也不能存取nonstatic数据,布布扣,bubuko.com
静态成员函数不能用const修饰 ,也不能存取nonstatic数据
标签:c++
原文地址:http://blog.csdn.net/yusiguyuan/article/details/38369181