"一个程序必须是既有构造函数又有析构函数".
这句话本身就是具有二义性,是作者不负责的表现.C++标准:
C++中,从定义上讲都有一个构造函数,一个析构函数,一个COPY 构造函数,
一个Opreator = 的重载.要注意:
1、是从定义讲,但当用户[你]没有给出构造、析构.....的声明[定义]时,
系统[编译器]到底是不是会合成出一个相应的构造函数,析构函数...呢???答案是,当需要时才会。也就是说,只有有了这种需要,才会真正地合成出那些函数。什么时候是需要的时候?涉及的太多,以后你自己去了解。
2、并不是CLASS中有了构造函数,就一定要有一个析构函数与之对应。
3、即使CLASS中没有析构函数的声明,也不能说明类就没有析构函数了,类可能会根据自己的需要合成出一个析构函数,当然也可能不合成。]
推荐:钱能<C++语言程序设计>
候J《深度探索C++对象模型》