问个简单点的,为什么C++里的静态成员函数不可以定义成const?解决思路

问个简单点的,为什么C++里的静态成员函数不可以定义成const?
得到答案即结帖

------解决方案--------------------
因为静态成员不是任何对象的组成部分。。所以不能使const的。。
呵呵。。
------解决方案--------------------
const在修饰成员函数时,用来指出,这个函数不会改动对象的内容.

面static函数, 不是针对类对象的. 它和一个变通的全局函数的性质是一样的.

所以用const来修饰static函数, 与用const来修饰普通的全局函数样的.

用const修饰一个普通的全局函数有什么意义呢?是说这个函数的哪些部分不能变化呀?
呵呵
------解决方案--------------------
向ISO C++组织提出你的保贵意见!下一版本的C++将支持此新特性的
------解决方案--------------------
这里涉及到类和对象的区别. static是属于类的, 而const指的是对象.
SomeClass someclass;
const someType someclass.constFunction(someArguments)是一个对someclass对象的保证, 保证不修改对象.

static someType SomeClass::staticFunction(someArguments)与对象无关, 根本就不能用
this.
------解决方案--------------------
C++里的静态成员函数不可以定义成const

//定义成const,那么static成员函数的宿主类在哪里?
------解决方案--------------------
事实是:
对static成员方法, 编译器不会传给它一个this指针, 而对const成员方法(只有成员方法才能是const), 编译会隐式传递一个const this指针给它.

好, 现你的static又是const, 你叫编译器到底是传还是不传呢?
------解决方案--------------------
const 成员函数的意义在于 不修改对象的任何非mutable成员,
但是对于 static成员函数 来说,
它在在对象层次之上,是类层次的,
自然没有所谓的修改对象数据成员的问题,没有意义 ~
------解决方案--------------------
成员函数后面的const实际上修饰的是this指针.
static函数是全局函数,不与对象关联,没有this指针,你加个const想修饰什么?