c++中为什么static成员函数不能声明为const

rt,但是static 的数据成员可以声明为const.

这是C++的规则
const修饰符用于表示函数不能修改成员变量的值,该函数必须是含有this指针的类成员函数,函数调用方式为thiscall
而类中的static函数本质上是全局函数,调用规约是__cdecl或__stdcall,不能用const来修饰它
温馨提示:内容为网友见解,仅供参考
无其他回答

C++里的静态成员函数(以及static其它几种用法)
不能用const的原因:一个静态成员函数访问的值是其参数、静态数据成员和全局变量,而这些数据都不是对象状态的一部分。而对成员函数中使用关键字const是表明:函数不会修改该函数访问的目标对象的数据成员。既然一个静态成员函数根本不访问非静态数据成员,那么就没必要使用const了。定义数据成员为静态变量,...

const和static const的区别
在C\/C++编程中,const关键字用于声明只读变量,其值在声明时设定后就不能再被修改。相比之下,static const则具有更丰富的含义,它结合了作用域和存储方式的特点。首先,对于局部变量,static const将其存储方式设置为静态存储,这意味着每次函数调用时,它的初始值将保留为上一次调用后的值,且调用结束...

c++ const static和static const有什么区别?
const 、static都是限定词 const 表示所修饰的对象不能被改变 static 分几中情况。1。限定定义类成员时表明该成员是所有该类对象共享的,只有一个,而不属于某个特定的对象。所以要这样引用 classname::varname;2。限定非类成员的变量时,只定义一次,忽略重复的定义。相当于全局变量,const...

static const和const static的区别
const就是只读的意思,只在声明中使用;static一般有2个作用,规定作用域和存储方式.对于局部变量,static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;对于全局变量,如果以文件划分作用域的话,此变量只在当前文件可见;对于static函数也是在当前模块内函数可见.static const...

c++ 为什么不能在类类对static成员定义? 我看的都是类内声明,类外定义...
你好,静态数据成员为各对象所共有,而不只属于某个对象的成员,所有对象都可以引用它。静态的数据成员在内存中只占一份空间,而不是每个对象都分别为它保留一份空间。所以静态数据成员只能在类体外进行初始化。再复制一下看到的别人的解释吧。静态数据成员对于所有类对象来说只有一份,因此不能在类体内...

在线等待:关于C++中static和const的区别.
一个变量按存储方法分为auto static register extern四种。其中static可以声明局部变量也可以声明全局变量。当声明局部变量时表示局部变量的值在函数调用结束时不消失而保留原值。const表示只读,被其限定的标量不能改变,但在函数调用结束时消失。const int a;(称谓常变量)这种写法有点问题。当定义常变量...

C++里面const int 和static const int有什么区别
1)在C++里,const int 是定义一个常量,它可能具有代码块作用域,也可能具有文件作用域(即外部变量),但这需要取决于你是如何定义它的。2)在C++里,static const int是定义一个常量,它可能具有代码块作用域,也可能具有文件作用域(即内部变量),但这需要取决于你是如何定义它的。

c++ const和static有什么区别?
static的作用是把一个变量(这里的变量和上面说的概念一样,都是泛指)设置为“静态”。一般情况下,我们在子程序中定义的变量,在这个子程序运行 结束的时候都会被销毁,其值就丢失了。如果用了static,则这个变量的值在子程序结束后依然被保留 。这个变量是否被销毁我不知道,但其值肯定被保留了。当...

C++ 类的定义问题,为什么只有const static 整型变量才可以在类中定义...
因为只有const static 变量是会全局保存的,即时你的类析构释放掉了,这些变量会依然保存在内存中 如果是非Const的变量,他会随着你的类的释放而释放 因此对于普通的变量,应该在构造函数中赋值

如何理解c++中的关键字static,const,以及#define在定义
const代表constant,意为常数或常量。用于修饰变量,表示其不可修改;用于指针,表示指针指向的对象不可变;用于方法,表示该方法不会改变对象。static含义复杂,有三种含义:应用于全局变量时,表示每个编译单元独立实例化变量。若分别编译foo.cpp与bar.cpp后链接,全局变量a将有两份,分别由函数各自操作。应...

相似回答