首页 > 试题广场 >

如果MyClass为一个类,执行”MyClass a[5],

[单选题]
如果MyClass为一个类,执行”MyClass a[5], *b[6]”语言会自动调用该类构造函数的次数是()
  • 2
  • 5
  • 4
  • 9
推荐
答案:B
答案解析:MyClass a[5],会创建5个对象,所以会自动调用5次构造函数,但是MyClass *b[6],这不会自动调用构造函数,因为这是声明一个指向6个元素的数组的指针,指针声明的时候是不分配空间的,所以不会调用构造函数,没有指向一个有效的内存空间。
编辑于 2015-01-27 17:11:25 回复(9)
MyClass *b[6]表示一个指针数组,数组里面存放的是指向MyClass类型的指针,即存放的地址,故不会调用该类的构造函数;
MyClass (*p)[6]表示一个数组指针,也不会调用该类的构造函数;
编辑于 2015-04-29 14:11:50 回复(2)
MyClass a[5];
MyClass *b[6];
则a[5]是类数组,有5个对象,调用构造函数5次。
*b[6]是指针数组,也就是6个元素存放的是指向MyClass类型的对象的指针,没有初始化的指针为空,不指向任何对象,也不调用构造函数。
发表于 2016-08-09 19:27:34 回复(0)
答案解析:MyClass a[5],会创建5个对象,所以会自动调用5次构造函数,但是MyClass *b[6],这不会自动调用构造函数,因为这是声明一个指向6个元素的数组的指针,指针声明的时候是不分配空间的,所以不会调用构造函数,没有指向一个有效的内存空间。
发表于 2021-09-06 10:49:05 回复(0)
选择B:
声明对象数组,这是对象的实体,调用构造函数,分配空间。
而声明指针时,不分配空间,不调用构造函数。
发表于 2015-09-13 13:08:44 回复(0)
MyClass a[5];
MyClass *b[6];
则a[5]是类数组,有5个对象,调用构造函数5次。
*b[6]是指针数组,也就是6个元素存放的是指向MyClass类型的对象的指针,没有初始化的指针为空,不指向任何对象,也不调用构造函数
发表于 2021-07-15 20:19:12 回复(0)
指针声明的时候是不分配空间的
发表于 2018-03-19 09:49:22 回复(0)
只有创建对象才会调用构造函数,指针并没有创建具体对象
发表于 2020-10-13 20:27:46 回复(0)
MyClass a[5],会创建5个对象,所以会自动调用5次构造函数,
但是MyClass *b[6],这不会自动调用构造函数,因为这是声明一个指向6个元素的数组的指针指针声明的时候是不分配空间的,所以不会调用构造函数,没有指向一个有效的内存空间。
发表于 2020-09-27 14:54:50 回复(0)
B
a[5]要调用五次,而指针则不需要
发表于 2015-02-15 07:39:12 回复(0)
类创建几个对象就调用几次构造函数,创建指针,如果未初始化指针为空,,申明的时候不分配内存空间,没指向内存空间就不调用构造函数
发表于 2023-03-15 02:06:44 回复(0)
点错了
发表于 2021-07-03 17:20:41 回复(0)
对Myclass a[5]不理解  以及myclass *b[6]的机制不了解。
发表于 2021-06-08 17:59:24 回复(0)
指针仅仅申明而不初始化的时候是不分配内存的
发表于 2020-10-18 20:32:02 回复(0)
数组干的事多
发表于 2020-09-20 10:37:28 回复(0)
发表于 2019-10-09 11:44:06 回复(0)
指针数组,数组指针,指针常量,常量指针,看的头大,这时候用英语一目了然,根本不会绕嘴。
发表于 2016-09-23 19:28:30 回复(0)
应该是6次吧,先调用默认构造函数创建临时对象,然后调用拷贝构造函数5次完成初始化才对
发表于 2015-09-08 13:37:56 回复(0)
B
MyClass *b[6]创建指针,不会调用构造函数
发表于 2015-01-27 11:16:40 回复(0)