类与对象-构造函数
来源:互联网 发布:ros mac禁止 编辑:程序博客网 时间:2024/06/06 09:02
构造函数是一种特殊的成员函数,名字与类名完全相同,没有返回类型。
1.构造函数的作用
对象的数据成员一般在构造函数中初始化,构造函数可以保证对象在创建后其数据成员都已经被初始化,构造函数在创建对象是被自动调用,不能指定其返回类型。
2.构造函数的执行时机
- 对象被声明或创建时,构造函数将被自动调用。
- 全局对象在所有程序执行之前就被创建,也就是说在main函数执行之前。
- 局部动态对象和局部静态对象(static关键字声明)在程序执行到声明语句时被创建。
- 动态创建的对象(new运算符创建)在程序被执行到该语句时被创建。
3.构造函数重载
- 重载构造函数的类具有多个构造函数,这些构造函数的函数名完全相同,都没有返回类型,只是参数列表不同。
- 在调用时,系统根据函数名和参数列表共同确定该调用哪个函数,而且只会调用一次,并不会调用类的所有构造函数。
//A.h#ifndef __A__H__#define __A__H__#include <iostream>class A{ public: A(); A(int z, int x, int c); // 重载类的构造函数 A(int z); ~A();};#endif
4.默认构造函数
- 不提供参数的构造函数是默认构造函数.
- 一个类不能有多个构造函数。
- 所有参数都是默认参数的构造函数也是默认构造函数。
class A{ public: A(int a = 1, int b = 2); //含有默认参数的默认构造函数};
5.复制构造函数
- 根据类的某个对象复制出一个完全相同的新对象的构造函数称为复制构造函数。
- 对象中包含指向动态分配空间的指针数据成员时,简单的赋值会导致两个指针数据成员指向同一块内存空间,这样很容易导致内存管理上的错误。正确的做法是为当前新建对象的指针数据成员分配新的空间,然后将参数对象中指针数据成员所指的动态分配空间中的数据复制过来。
//A.h#ifndef __A__H__#define __A__H__#include <iostream>class A{ public: A(); //复制构造函数 A(A &a) { x = a.x; y = a.y; z = a.z; } ~A(); private: int x, y, z;};#endif
0 0
- 类与对象-构造函数
- c++类与对象,构造函数
- javascript,类与对象,构造函数方式
- 对象数组与构造函数
- 构造函数与对象指针
- 对象数组与构造函数
- 对象数组与构造函数
- 构造函数与创建对象
- java 14:对象与类,构造函数,访问对象
- 类与对象:构造函数和析构函数
- 十四、类与对象:构造函数和析构函数
- day05对象与类,函数,构造函数,this
- 函数返回类的对象与拷贝构造函数
- 类与对象、构造与析构函数
- 类函数, 原型对象 与 构造方法之间的关系
- 【面向对象】php新手之学习类与对象-构造函数与析构函数
- 构造函数初始化类对象
- 临时对象与拷贝构造函数
- 用GA算法设计22个地点之间最短旅程-R语言实现
- PHP编程效率的20个要点
- 字符的ASCII码
- hdu3257【模拟】
- HTML学习笔记:2 HTML元素
- 类与对象-构造函数
- Linux 内核 net_proto_family
- 嵌入式系统学习(十)-通过直接配置寄存器操作GPIO
- R︱并行计算以及提高运算效率的方式(parallel包、clusterExport函数、SupR包简介)
- js面向对象入门
- 开启OpenStack社区贡献之路
- javaweb 尚硅谷笔记
- 2016-10-1
- 4.线性分类器(二)