zoukankan      html  css  js  c++  java
  • C++构造函数的选择

    构造函数用来初始化类对象。构造函数有好几种,在编程时如何选择不同的构造函数呢?做个总结

    一、默认构造函数

      默认构造函数是在程序员没有声明任何构造函数的时,编译器为了初始化类对象自己进行的默认构造函数。既然是是编译器为了方便自己做的构造函数,它在初始化时就没有那么的智能,一般有两种:

        1)如果类内有初始值,即用此值来初始化;

        2)使用默认初始化值,一般int 型初始化为0,字符串初始化为空串。

      但是有些类不能使用默认构造函数:

        1)对于类内的内置类型和复合类型(如指针、数组)则是未定义的,所以默认构造函数只适用于简单类的构造函数。

        2)若类中包含其他类的成员且成员也没有默认构造函数,则编译器无法初始化该成员。

    二、构造函数初始化列表

      

    Home::Home(int x): num(x),desk(x),room(num){}

      初始化的顺序和初始化列表的顺序无关,但是尽量按照类内定义的顺序依次初始化;

      尽量不要用类的成员初始化其他变量;

      区别列表初始化所占的计算资源和存储资源都要少于赋值操作,后者要先初始化再赋值。对于const和引用要先初始化,不能赋值。

    三、在类的外部定义构造函数

  • 相关阅读:
    C# 类动态添加属性、方法(Z)
    WPF三大模板简介(Z)
    C# mongodb 驱动操作(Z)
    解析Exception和C#处理Exception的常用方法总结
    创建 WPF 工具箱控件
    WPF 线程 Dispatcher
    Path
    C#操作字符串方法总结<转>
    P2058 海港
    P2234 [HNOI2002]营业额统计
  • 原文地址:https://www.cnblogs.com/huangfuyuan/p/11287145.html
Copyright © 2011-2022 走看看