C++默认构造函数——深入理解 (转载)
本文转载自这里,修正了一些格式和文字错误。
引子
错误认识1:若程序员没有自己定义无参数的构造函数,那么编译器会自动生成默认构造函数,来进行对成员函数的初始化。
错误认识2:编译器合成出来的default constructor会明确设定“class内每一个data member的默认值”。但这两种种认识是有误的,不全面的。
正确认识:
默认的构造函数分为有用的和无用的,所谓无用的默认构造函数就是一个空函数、什么操作也不做,而有用的默认构造函数是可以初始化成员的函数。
对构造函数的需求也是分为两类:一类是编辑器需求,一类是程序的需求。
程序的需求:若程序需求构造函数时,就是要程序员自定义构造