C++学习体会--构造函数,析构函数,拷贝构造函数
2006-05-25 15:50
267 查看
1.构造函数
确保对象的初始化,
构造函数不能被继承,因此,在定义派生类的构造函数时除了对自己的数据成员进行初始化外,还必须负责调用基类结构函数,使基类的数据成员使以初始化。派生类构造函数的调用顺序:基类的构造函数、子对象类的构造函数、派生类构造函数。
2.析构函数
确保对象的清除
析构函数也不能被继承,在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,与构造函数的执行顺序相反
当对象超出它的定义范围时,编译器自动调用析构函数。在对象的定义点处构造函数被调用,但析构函数调用的唯一根据是包含该对象的右括号
程序中不能直接调用构造函数,析构函数,只能在创建对象时系统自动调用.动态分配的对象当使用new为对象分配内存时会调用构造函数,使用delete删除对象时会调用析构函数.析构函数可以是虚函数,构造函数不能是虚函数.
3.拷贝构造函数
拷贝构造函数就是用已存在的对象来初始化另一个对象。
当类的数据成员中存在指针成员的时候,要自己定义它,因为编译器往往采用位拷贝,一个内存块一位一位的复制过去,造成多个对象的指针成员都指向同一块内存区域
确保对象的初始化,
构造函数不能被继承,因此,在定义派生类的构造函数时除了对自己的数据成员进行初始化外,还必须负责调用基类结构函数,使基类的数据成员使以初始化。派生类构造函数的调用顺序:基类的构造函数、子对象类的构造函数、派生类构造函数。
2.析构函数
确保对象的清除
析构函数也不能被继承,在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,与构造函数的执行顺序相反
当对象超出它的定义范围时,编译器自动调用析构函数。在对象的定义点处构造函数被调用,但析构函数调用的唯一根据是包含该对象的右括号
程序中不能直接调用构造函数,析构函数,只能在创建对象时系统自动调用.动态分配的对象当使用new为对象分配内存时会调用构造函数,使用delete删除对象时会调用析构函数.析构函数可以是虚函数,构造函数不能是虚函数.
3.拷贝构造函数
拷贝构造函数就是用已存在的对象来初始化另一个对象。
当类的数据成员中存在指针成员的时候,要自己定义它,因为编译器往往采用位拷贝,一个内存块一位一位的复制过去,造成多个对象的指针成员都指向同一块内存区域
相关文章推荐
- C++ 学习总结(十)——C++类与对象,及构造函数,析构函数,拷贝构造函数
- C++ 学习笔记(13)拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符、析构函数、右值引用、引用限定符
- 【C++学习】构造函数、拷贝构造函数、析构函数小结
- C++入门学习:构造函数,拷贝构造函数(特殊情况,浅拷贝与深拷贝),析构函数
- C++学习笔记(17)——虚函数与构造函数、析构函数
- 从零开始学C++之构造函数与析构函数(二):初始化列表(const和引用成员)、拷贝构造函数
- C++学习摘要之二:构造函数和析构函数 .
- 深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结
- C++学习笔记-2-构造函数和析构函数
- C++实现一个类并包含构造函数,拷贝构造函数,赋值函数,析构函数
- C++学习(八) C++构造函数与析构函数(三)
- C++的6大成员函数,构造函数(初始化列表),析构函数,拷贝构造函数,运算符重载,const成员函数
- c++基础学习7-c++构造函数和析构函数
- C++的静态成员函数,成员变量,构造函数,析构函数,拷贝构造函数
- 一步一步学习C++(类)之构造函数与析构函数
- C++学习之路—继承与派生(二):派生类的构造函数与析构函数
- C++学习摘要之二:构造函数和析构函数
- C++基础(一)构造函数、析构函数、拷贝构造函数
- C++面试之 类string的构造函数、拷贝构造函数和析构函数
- C++基础学习9:构造函数和析构函数