类相关问题


类的对象初始化问题

类的初始化(非new的情况下)有以下几种方式:

  1. 如果没有非默认构造函数,则在定义对象时自动调用默认构造函数,默认构造函数有三种,一种是系统默认的,一种是给构造函数的所有参数提供默认值,一种是重载一个没有参数的构造函数,在里面对所有成员进行初始化(只能选用其中一种)。此时类的对象定义可以如以下两种写法:

    ① 类名 对象名{} ② 类名 对象名

  2. 如果定义了非默认构造函数,类的对象有如下三种定义方式:

    ① 类名 对象名= 类名(参数值1,参数值2,·······)
    ② 类名 对象名(参数值1,参数值2,······)
    ③ 类名 对象名{参数值1,参数值2.······}
    ④ 类名 对象名={参数值1,参数值2,······}

需要注意的问题!!!

定义对象时,有些编译器可能会生成一个临时对象,再将内容赋值给该对象实现,因此会有构造函数和析构函数的调用。另外,若一个对象已经存在,再对它用初始化语句会导致程序创建一个新的,临时的对象,再将内容复制给它,随后调用析构函数,以删除该临时对象,不过有可能滞后调用。通常,初始化对象比对象赋值的效率更高。

声明:技术分享爱好者|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 类相关问题


Carpe Diem and Do What I Like