A a(4) //这一定义,调用类A的赋值构造函数A(int x) 一次
A b[3] //相当于定义了类型为A对象的数组,其元素个数为3,即调用三次类A的默认构造函数A()
A *p[2] //定义了一个类型为A*的数组,即指向A类对象的指针数组,并未产生类A的对象,不调用构造函数
满意请采纳。
A a(4) 调用有参构造函数1次;
A b[3] 创建A数组,调用无参构造3次;
A *p[2] 不会调用构造函数。
一共调用构造函数4次。
4次是对的,创建A的时候还调用了一次默认的构造函数,尽管什么都不做,但是初始化工作是必须完成的。然后调用三次方法,会自动执行三次构造函数。
p是指针数组,并没有赋值为实体,故调用0次,b数组含三个类,每个类调用一次,a为一个类,只调用一次,所以总共3+1=4次