构造函数疑问

[复制链接]
 楼主| 秋天落叶 发表于 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

粉丝
快速回复 在线客服 返回列表 返回顶部