大家进来讨论下构造函数?

iceman19860106 2008-11-13 10:06:12
集思广益
大家来讨论下构造函数
以下是我的理解
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)转换构造函数 本人不是很理解

...全文
52 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wgq2633 2008-11-13
  • 打赏
  • 举报
回复
看《深入浅出MFC》,发现要想让代码在main()函数执行之前,可以把它们写在类的构造函数里面,然后在main()外定义一个全局的类对象,不过不晓得在main()之前执行代码有没有特殊的用途
帅得不敢出门 2008-11-13
  • 打赏
  • 举报
回复
构造函数有一个作用是构造对象
不一定是初始化

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧