首页 > 试题广场 >

若A是一个类名,且有如下语句序列 A a1; A &

[单选题]
若A是一个类名,且有如下语句序列
A a1;
A &a2=a1;
 A *a3=new A;
执行上面的语句序列,调用A类的构造函数次数是()

  • 1
  • 2
  • 3
  • 4
B、2次
首先,当执行A a1;这条语句时,会创建一个名为a1的对象,并调用 A 类的默认构造函数进行初始化。这是第一次调用构造函数。

接着,当执行A &a2 = a1;这条语句时,我们将a2初始化为a1的引用。由于没有创建新的对象,因此不会触发构造函数的调用。

最后,当执行A *a3 = new A;这条语句时,会使用关键字new动态分配内存,并创建一个名为a3的指针变量。然后,会调用 A 类的默认构造函数来初始化新创建的对象。这是第二次调用构造函数。

因此,在这些语句中,调用 A 类的构造函数的次数是 2 次。

编辑于 2023-10-12 22:31:30 回复(0)
1. 构造函数 2. 复制构造函数 3. 构造函数  所以两次?
发表于 2020-09-02 14:34:28 回复(0)