免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: brooks_shenzhen
打印 上一主题 下一主题

[C++] 求教:C++中 const 和 static 的区别 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-05-12 23:28 |只看该作者
原帖由 langue 于 2007-5-12 23:20 发表


其实我可以反问一句:static const 又是什么情况呢?还有 const static?

.

老大你可以当面试官了:)
我自己觉得这两种声明是等价的。
不过在c++的某个类中,如果声明了一个static的成员变量,那么所有这个类的对象是共享这个变量的同一副本的。这样的声明可能会用来实现一些常量的共享。
在c里面,可能就看编译器了吧,如果函数的调用都要为其中的const对象分配空间的话,那static const这样的类型会长期为该常量保存一段存储区。会不会优化的时候放在寄存器里呢?

论坛徽章:
0
12 [报告]
发表于 2007-05-13 08:03 |只看该作者
.

看得出来,你背景知识掌握得不错。只不过我认为面试官的原意可能不是这个,你想得过于复杂了。或者要想描述得复杂一些也没问题,但应该从基本走向复杂,否则就不自然了。

static 指定对象的作用域。如果 static 用在了(函数)内部对象上,那么即使退出函数,对象还是保留着的。static 用于外部对象,那么对象只对本代码文件可见。static 对象需要用常值类型来初始化。

const 对象如果要赋值就必须在初始化的时候进行,因为这是唯一的赋值方法了。

考官问这个不一定是想问什么区别,主要也是看你概念清晰与否。换言之,考官问你 “区别” 你不一定得回答 “区别”,出题者给你一道题目你不一定需要给出 “答案”。有的时候一道题目无解,你倒写了个答案上去,这不行吧。

提供参考书目:The C Programming Language, Second Edition,你可以看看第二章、第四章。

.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP