首页 > 试题广场 >

(C++部分)若TestClass为一个类,执行“TestC

[单选题]
(C++部分)若TestClass为一个类,执行“TestClass a[4]*p[5]语句时会自动调用该类构造函数的次数是 ?
  • 2
  • 5
  • 4
  • 9
语句“MyClass a[4]”定义了4个MyClass对象,分别为a[0],a[1],a[2],a[3],调用4次构造函数;语句“MyClass *p[5]”定义了5个指向MyClass对象的指针变量,分别为*p[0],*p[1],*p[2],*p[3],*p[4],但定义指针并没有实例化对象,所以不调用构造函数。因此,执行该语句共调用MyClass的构造函数4次
发表于 2021-01-26 12:53:48 回复(0)
a[4]表示 4 个对象,而*p[5]表示五个指针,并没有分配内存空间,因此不会调用构造函数和析构函数。如果需要生成,需要分配内存空间。例如
TestClass *p=new testClass();



发表于 2020-10-14 22:00:50 回复(0)

记住 类指针不会调用构造函数的

编辑于 2021-04-17 16:24:39 回复(0)
 a[4]是放4个对象*p[5]是放5个指针
发表于 2018-03-20 14:52:48 回复(0)
题都出错了,应该是构造函数,这里没事调用析构函数干啥?
发表于 2018-03-19 22:57:39 回复(1)
只有给对象分配空间才调用构造函数和析构函数,指针并没有new一个新的对象,因此不会调用构造函数和析构函数
发表于 2021-05-06 14:30:34 回复(0)
反复确认了几遍,析构函数是认真的吗
发表于 2021-08-13 16:48:42 回复(0)
第一次看到题。有点蒙,怎么会扯到析构函数?
发表于 2021-05-10 09:52:17 回复(0)