static 和 const 能不能同时用来修饰一个函数,为什么?

 我来答
带你看真实的世界
推荐于2017-09-14 · 最好和最可怕的世界正在来临。
带你看真实的世界
采纳数:148 获赞数:942

向TA提问 私信TA
展开全部
const就是只读的意思,只在声明中使用;
static一般有2个作用,规定作用域和存储方式.对于局部变量,static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;
对于全局变量,如果以文件划分作用域的话,此变量只在当前文件可见;对于static函数也是在当前模块内函数可见.
static const 应该就是上面两者的合集.
下面分别说明:
全局:
const,只读的全局变量,其值不可修改.
static,规定此全局变量只在当前模块(文件)中可见.
static const,既是只读的,又是只在当前模块中可见的.
文件:
文件指针可当作一个变量来看,与上面所说类似.
函数:
const,返回只读变量的函数.
static,规定此函数只在当前模块可见.
类:
const,一般不修饰类,(在VC6.0中试了一下,修饰类没啥作用)
static,C++中似乎没有静态类这个说法,一般还是拿类当特殊的变量来看.C#中有静态类的详细说明,且用法与普通类大不相同.
追问
好像不行啊,static 限定的函数没有this指针,而const限定的函数就是限定this指针为常指针,不知道是不是这个原因
浮云成烟爱成恨
推荐于2018-05-17 · TA获得超过120个赞
知道答主
回答量:51
采纳率:100%
帮助的人:2.8万
展开全部
疑问:static 和 const 能不能同时用来修饰一个函数,为什么?
解答:
static 和 const 不能同时用来修饰一个函数。
const就是只读的意思,只在声明中使用;
static一般有2个作用,规定作用域和存储方式.对于局部变量,static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;
对于全局变量,如果以文件划分作用域的话,此变量只在当前文件可见;对于static函数也是在当前模块内函数可见.
static const 应该就是上面两者的合集.
下面分别说明:
全局:
const,只读的全局变量,其值不可修改.
static,规定此全局变量只在当前模块(文件)中可见.
static const,既是只读的,又是只在当前模块中可见的.
文件:
文件指针可当作一个变量来看,与上面所说类似.
函数:
const,返回只读变量的函数.
static,规定此函数只在当前模块可见.
类:
const,一般不修饰类,(在VC6.0中试了一下,修饰类没啥作用)
static,C++中似乎没有静态类这个说法,一般还是拿类当特殊的变量来看.C#中有静态类的详细说明,且用法与普通类大不相同.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
徐庆超33
2012-08-13 · 超过52用户采纳过TA的回答
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:140万
展开全部
可以的,static主要是限定函数的作用域,const是防止函数体内进行赋值操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chiconysun
2012-08-13 · TA获得超过2.2万个赞
知道大有可为答主
回答量:5410
采纳率:92%
帮助的人:2571万
展开全部
没有问题
static 函数指只能被本原文件中其他函数调用
返回值为const表示常量,不能修改
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dac4d54
2012-08-13 · TA获得超过190个赞
知道答主
回答量:155
采纳率:0%
帮助的人:65.3万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式