是否能解释像static和virtual这样的关键字为什么在定义的时候不用给上?

乐意意 2018-05-14 07:17:11
问题如题,或者问为什么const这样的关键字在定义的时候要给上?
单纯说是C++规定我觉得行不通,因为为什么不统一规定为只在声明的时候给上,定义的时候不给上,
或者为什么不统一规定声明和定义的时候都要给上?
...全文
804 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
static 定义的是函数的静态属性,被定义为 static 的函数,和普通的函数变为一类层次的概念了。所以,在实现的时候,没有了 static. const 定义的是函数的行为,就说这个函数里,不能修改任何成员变量,以便于外部的const 类型实例可以调用。
赵4老师 2018-05-15
  • 打赏
  • 举报
回复
不要纠结各种常量了,这个世界上唯一不变的就是变化。用API WriteProcessMemory还能修改正运行的其它进程的内存里面的所谓常量呢!
lin5161678 2018-05-14
  • 打赏
  • 举报
回复
因为文件作用域里面的static 早就有作用了 限定本文件可见 所以就不给加
狐狸小十 2018-05-14
  • 打赏
  • 举报
回复
引用 2 楼 weixin_41133154 的回复:
就是在类中,声明成员函数的时候加了const,然后在实现函数的时候要加上const,为什么? 在类中,声明一个成员函数是静态的,需要使用static来声明,但是在实现该静态成员函数的时候,不需要加上static来说明,为什么?
const是修饰类型或参数的,static virtual是修饰函数的,两者不太一样 但主要还是编译器设计的问题,语法上没那么多为什么,就是这么定的
真相重于对错 2018-05-14
  • 打赏
  • 举报
回复
反过来想想,如果允许static 会怎么样?
乐意意 2018-05-14
  • 打赏
  • 举报
回复
就是在类中,声明成员函数的时候加了const,然后在实现函数的时候要加上const,为什么? 在类中,声明一个成员函数是静态的,需要使用static来声明,但是在实现该静态成员函数的时候,不需要加上static来说明,为什么?
真相重于对错 2018-05-14
  • 打赏
  • 举报
回复
读了几遍,感觉不通顺,请举个栗子

65,203

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧