构造函数

来源:互联网 发布:淘宝网怎么注册卖家 编辑:程序博客网 时间:2024/05/21 07:02
1.构造函数
  作用:初始化对象的数据成员,无论何时只要类的对象被创建,就会执行构造函数
   特点:构造函数名字和类名字相同;且没有返回值类型;可以含有参数列表(可能没有参数)和函数体(可能是空);构造函数不能申明为const,如果创建const对象,直到构                  造函数完成初始化过程,对象才取的常量属性;
 2.构造函数的类型:默认构造函数,显式定义的构造函数
   默认构造函数:默认的构造函数没有任何参数,默认构造函数分为合成的默认构造函数与自定义的默认构造函数
  合成的默认构造函数:如果我们的类没有显式的定义构造函数,编译器会隐式的定义一个默认构造函数,称为合成的默认构造函数,一旦我们定义了其他的构造函数,编译器将                                              不会为我们定义合成的默认构造函数。合成的默认构造函数按照如下规则初始化数据成员:1.如果存在类内初始值,用它来初始化成员;2.否则默认初始                                                化
  自定义的默认构造函数:例如Sales_data()=default,自定构造函数的作用完全等价于合成默认构造函数;需要自定义默认构造函数的原因
     1.编译器只有在发现类不包含任何其他的构造函数时才替我们定义合成的默认构造函数,一旦我们定义了其他的构造函数,除非我们定义自定义的默认构造函数,否则类将没有           默认构造函数。
      2.合成的默认构造函数可能执行错误的操作,因为合成的默认构造函数初始化的内置类型成员(没有类内初始值时)时,可能得到未定义的值。
      3.有的编译器不能为类定义合成的默认构造函数,例如:类中包含一个其他类类型的成员且这个成员没有默认构造函数,则编译器将无法初始化该成员。








注意:如果累包含内置类型或复合类型成员,则只有这些成员全部都赋予了类内初始值时,这个类才适合使用合成的默认构造函数
1 0