初始化是如此重要,以至于在Thinking in c++中大部分时间都在强调一定要初始化。如果不初始化一块内存就去应用的话,你将得到不确定的结果,这增加了程序的风险。
程序员经常忘记初始化,所以在C++中,编译器将初始化的任务包揽了,但是还是需要程序员编写初始化代码的。同样的,清除一样非常重要,分配的内存没有释放,久而久之,没内存可用了。所以C++提供相应的构造函数和析构函数,这两种函数都没有返回值。为什么没有呢?假设有的话,应该是什么类型呢?假设有的话,如何处理返回值呢?
C中所有的变量都是在程序开始的时候分配内存的。C++也可以有这样的策略,但是分配了内存,必须初始化才能使用,所以必须要等到定义之后,调用了相应的构造函数才能使用该对象。C++反对使用未定义的内存块,所以,在switch或者goto这种能跳过定义的地方定义一个类是错误的。
posted on 2012-05-29 17:20
Dino-Tech 阅读(142)
评论(0) 编辑 收藏 引用