构造函数方面

来源:互联网 发布:滚动屏软件 编辑:程序博客网 时间:2024/05/17 06:28

1.关于默认构造函数 

默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化式就会使用默认构造函数。

如果用户定义的类中没有显式的定义任何构造函数,编译器就会自动为该类型生成默认构造函数:

不生成默认构造函数的情况: 一个类显式地声明了任何构造函数,编译器不生成公有的默认构造函数,这这种情况下,如果程序需要一个默认构造函数,需要由类的设计者提供;

一个类声明了一个非公有的默认构造函数,编译器不会生成公有的默认构造函数。

2.构造函数的继承

class B继承自class  A ,创建B对象b是,要先调用A的构造函数构造A的部分,然后再调用B的构造函数构造B自身的部分

析构时调用顺序相反

(new ----delete)如果是指针时,要先显式析构指针delete  

---------

   A   (如果A没有默认构造函数,而有形如A(int)的构造函数时,B的构造函数就要在初始化列表中先调用A(int)来显式创建A的部分)

---------

   B

---------

例:CR: 程序员面试宝典_Ver 3_page139_面试例题3