AB a(4), b(5), c[3], *p[2] = {&a, &b};
5
4
3
9
A 只有给对象分配内存才调用构造函数 AB a(4) 定义对象a, 调用了带一个参数的构造 AB b(5)跟上面的性质类似, 调用了带一个参数的构造 AB c[3] 跟上面的性质类似, 定义对象数组,调用无参构造3次 AB *p这至是一个指针,没有指向任何空间,更么有分配内存,不会调构造
只有给对象分配内存才调用构造函数 指针没有new一个对象,所以不会分配内存,不构造。 只是给指针指向某地值的话,没有开辟空间,不构造。
AB a(4);
调用1次构造函数,4是传递给构造函数的参数;
AB b(5);
调用1次构造函数,5是传递给构造函数的参数;
AB c[3];
数组c,其内部有3个AB对象,需要调用3次无参构造函数;
AB *p[2] = {&a, &b}; //类似于数组的初始化 int a[3] = {1, 2, 3};
数组p有2个元素,2个元素是AB类型的指针,分别指向AB实例a和b,不会调用构造函数。
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题