对C++中派生类的构造函数和析构函数的认识
2015-04-02 22:19
197 查看
一:构造函数
形式:派生类名::派生类名:基类名1(参数1),基类名2(参数2),……基类名n(参数n),数据成员1(参数1),数据成员2(参数2),……数据成员n(参数n){
各种操作的说明
}
执行过程:先执行基类的构造函数,再进行数据成员的赋值,最后执行函数体。
其中基类名和数据成员的顺序是由在派生类的定义中声明的顺序决定执行的顺序的,因此它们的顺序是任意的,但为了可读性,还是最好按顺序写。
如果基类只有默认构造函数,则基类名和参数表可以不用写出来。
二:复制构造函数
派生类的构造函数的形式用一个例子说明:
Derived::Derived(Derived&v):Base1(v){……}
细心的话会发现Base1的形参和Derived 的形参一样是c,这里用到了类型兼容规则。
三:析构函数
派生类的析构函数的形式和普通类的析构函数在形式上完全相同,它的执行顺序和派生类的构造函数的执行顺序刚好完全相反,即先执行函数体,再执行成员的析构函数,最后执行基类的析构函数。
以上就是我对于派生类的构造函数和析构函数的认识。
形式:派生类名::派生类名:基类名1(参数1),基类名2(参数2),……基类名n(参数n),数据成员1(参数1),数据成员2(参数2),……数据成员n(参数n){
各种操作的说明
}
执行过程:先执行基类的构造函数,再进行数据成员的赋值,最后执行函数体。
其中基类名和数据成员的顺序是由在派生类的定义中声明的顺序决定执行的顺序的,因此它们的顺序是任意的,但为了可读性,还是最好按顺序写。
如果基类只有默认构造函数,则基类名和参数表可以不用写出来。
二:复制构造函数
派生类的构造函数的形式用一个例子说明:
Derived::Derived(Derived&v):Base1(v){……}
细心的话会发现Base1的形参和Derived 的形参一样是c,这里用到了类型兼容规则。
三:析构函数
派生类的析构函数的形式和普通类的析构函数在形式上完全相同,它的执行顺序和派生类的构造函数的执行顺序刚好完全相反,即先执行函数体,再执行成员的析构函数,最后执行基类的析构函数。
以上就是我对于派生类的构造函数和析构函数的认识。
相关文章推荐
- C++派生类构造函数和析构函数调用顺序
- C++语法基础--派生类的构造函数,赋值操作符,析构函数,虚析构函数
- C++中类的继承与Java中的不同,C++的派生类不能继承父类的构造函数和析构函数(不一定正确)
- C++反汇编第一讲,认识构造函数,析构函数,以及成员函数
- C++ 派生类构造函数、析构函数调用 [大三TJB_708]
- C++基础:派生类的构造函数与析构函数调用顺序
- C++学习笔记(4)——派生类的构造函数和析构函数
- 派生类的构造函数和析构函数(C++面向对象)
- C++:派生类的构造函数和析构函数的调用顺序
- C++学习之路—继承与派生(二):派生类的构造函数与析构函数
- C++:派生类的构造函数和析构函数
- C++ 派生类的构造函数和析构函数
- C++之派生类的构造函数和析构函数调用顺序
- c++派生类和基类的构造函数和析构函数
- [c++]派生类的构造函数和析构函数
- c++---派生类的构造函数和析构函数
- c++学习笔记5,多重继承中派生类的构造函数与析构函数的调用顺序(二)
- C++学习笔记(5)——基类、派生类的构造函数、析构函数的调用顺序
- c++之派生类的构造函数与析构函数问题
- 【c++继承】继承关系中派生类对象构造函数和析构函数调用顺序