大家进来讨论下构造函数?
集思广益
大家来讨论下构造函数
以下是我的理解
1.为什么要又构造函数?
构造函数是用来给对象初始化的。为什么要给对象初始化呢?想想在C中为什么建议在声明变量时最好也给变量初始化就知道了!
既然初始化那么被推荐,那么我们给对象初始化是否一定要使用构造函数呢?答案是否定的!可以有以下几种办法:
(1)编写多个函数给对象的多个数据成员初始化 繁琐,效率低下
(2)编写一个函数给对象的欲初始化的数据成员初始化 可以,但使用该对象的程序员每次都得去查看初始化函数名是什么
所以,C++干脆直接引入构造函数这一特性
2.构造函数的种类
(1)默认构造函数 在C语言中static a; 可以直接将a初始化为0;我猜想默认构造函数也是大同小异吧!
(2)普通构造函数
(3)拷贝构造函数 即只有一个参数且该参数为对该类对象的引用。我们知道在C中
int a = 3; int b; b=a; //可以直接把a变量的值赋给b
为了保持与C的一致性,也为了方便对象间的赋值,故引入拷贝构造函数
(4)转换构造函数 本人不是很理解