1 : 构造函数中 , 对数组的初始化时不能用初始化表的形式.
2: 重写是父类和子类之间才有的关系 , 重载是指函数名相同 , 函数参数个数和类型不同.
3: Box box() ; //声明了一个box()方法 , 它 返回Box对象.
Box box ; //定义了一个Box 类对象 .
4: 在声明构造函数时指定默认构造参数值 , 而不要在定义构造函数时指定其参数.
5: 一般不要同时使用构造函数的重载 和有默认参数的构造函数 . 容易出现二义性.
6: 对默认构造函数的理解: 在调用时不需要参数的构造函数 .(不是无参的构造函数) , 因为对全部参数都指定默认值的构造函数也是默认构造函数 . 同时, 一个 类只能有一个默认构造函数.
7: 析构函数不是用来撤销对象所占内存空间的 , 而是在系统撤销对象所占内存空间之前 , 最后一次完成用户指定的工作 .
8: 析构函数不能被重载 , 且一个类只能有一个析构函数.
9: 如果一个程序包含了多个文件 , 每个不同文件都定义了全局对象 , 则这些对象的构造函数的执行顺序是不确定的 ,故而其析构函数的执行顺序也是不确定的 .
10: student:: student(int =10 , int =34 , int =56)
//定义了一个构造函数 , 有三个参数 , 且都有默认值 .
student stud[3]={3 ,5 , 6}
//编译系统的处理是这样的: 将这三个参数依次赋给每个对象的第一个参数 , 每个对象的其余两个参数使用默认值 .
推荐的写法:
student stud[3] = {
student(3 ,6 ,90) ,
student(5 ,6 , 0),
student(45 ,654 ,9)
}; //在大括号中依次调用每个对象的构造函数.