打印

构造函数疑问

[复制链接]
1059|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
秋天落叶|  楼主 | 2012-5-12 09:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看书知道编写类时,还要给类写一个构造函数,书上说:为了给成员变量初始化。除了静态变量和全局变量之外,其他成员变量在调用类时都需要初始化——给其赋值。
我很好奇,
1 为什么我在内存空间已经开辟该成员变量的空间,尽管其值是个随机数,只要其不溢出,或者威胁其他内存空间,它应该就是安全的。既然开辟了空间,为什么要给它一个具体的值呢?这样不是很“累”吗?
2 当我需要使用某个成员变量时,我间接给其赋值,需要的时候再赋值不是更好吗?

由于对构造函数理解不深,求高手指教

相关帖子

沙发
gxgclg| | 2012-5-12 09:45 | 只看该作者
因为你一旦创建了对象它就应该是可用的,你取它的任何值都是应该可以得到正确结果的。
对象里的值不该依赖于调用它的代码,而应该由对象自己来掌控。否则,你的对象就不符合面向对象的原则了——把数据和对数据的操作集成到同一个东西里。

使用特权

评论回复
板凳
txcy| | 2012-5-12 09:56 | 只看该作者
不光是成员变量,其实任何数据在定义时最好赋值,避免了未赋值就使用而导致的问题

使用特权

评论回复
地板
dfsa| | 2012-5-12 10:00 | 只看该作者
有些变量是必须赋初值的,比如做为标识的变量,它的更改只有在特定的情况才能变量,大多数这个变量都是用来得到的,所以不赋初值

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:落叶很美

138

主题

3044

帖子

1

粉丝