本站为考生提供自考信息服务,仅供学习交流使用,与所示院校无合作关系,非政府官方网站,官方信息以省教育考试院和大学的网站为准。
..
志愿者

您现在的位置:自考网 > 我的自考 > 自学考试报考经验 > 正文内容

详细了解构造函数

来源:小易 | 2018-03-13 21:35:08 【加入收藏

最近更新时间:2018-03-13 21:39:15

 1、默认构造函数:当没有为一个类定义任何构造函数的情况下,C++编译器会自动产生如Point::Point(){}形式的默认构造函数,但一旦定义了自己的构造函数,系统就不再提供默认构造函数,所以如果程序中定义了有参数的构造函数,又存在需要赋值操作的情况,则必须为它定义一个无参数的构造函数。
 2、定义构造函数:①构造函数的名字应与类名同名,并在定义构造函数时不能指定返回类型,即使是void类型也不可以;②多个参数的构造函数有两种表示形式,构造函数后紧跟的单个冒号称为初始化列表;③构造函数产生的对象数组必须为每一个数组元素调用一次构造函数;④如下图1所示例4-4的程序说明了构造函数的定义和执行过程,书中大篇幅详解了这段程序,很好理解。
图1.例4-4
 3、外部对象:只是引用在其它地方声明的对象,程序并不为外部对象说明调用构造函数。
 4、全局对象:在main函数执行前要调用它们的构造函数,例4-5演示了全局对象,具体意义没有详说。
 5、自动调用构造函数:程序员不能再程序中显式的调用构造函数,构造函数是编译系统自动调用的。
图2.例4-5
 6、构造函数和运算符new:new、delete之前就接触过了,new用于建立生存期可控的对象,new返回这个对象的指针。例4-6如下图3所示,演示运算符new和构造函数的关系,遇到主函数中的指针就不好理解了,这样理解不知道对不对:Point类产生一个ptr1的对象指针,对象指针再使用Point的构造函数初始化赋值,偏偏这个没有注释。
图3.例4-6
 7、构造函数的默认参数:①如果程序定义自己的有参数构造函数,又想使用无参数形式的构造函数,解决的方法是将相应的构造函数全部使用默认参数设计,例4-7如下图4所示,在类体中设计构造函数的默认参数;②若没有为一个类定义无参数的构造函数时,则在说明对象数组时必须提供初始值。
图4.例4-7
 8、复制构造函数:①这一小结没有演示程序,讲实在的没怎么理解;②复制构造函数必须使用对象的引用作为形式参数;③如果自定义了复制构造函数,编译器只调用程序员为它设计的复制构造函数。
现在经过脑子中的内容越来越多,好像越来越难以消化了,特别是涉及到指针引用(*/&)的时候就感觉更模糊了,的想学快点都快不起来哦,欲速则不达吧。 
 加油!
坚持!

上一篇: 富有耐心的一起研究综合实例 下一篇: 树立三个月的计划

  • 扫二维码
    关注自考微信

    获取更多自考猛料!欢迎关注自考网官方微信
    我们在这里等你哦~
  • 扫二维码
    关注志愿者老师微信

    获取最新自考报名,获得免费自考一对一解答机会
    更多的自考难题、自考疑问、网络上无法搜索到的,我们将人工帮助你~
     
相关文章
看了本文的自考生还看了

重要的事情,电话里聊