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数据
原文:http://blog.csdn.net/yusiguyuan/article/details/38369181