关于构造函数的调用问题
对于已经定义好的一个类 A,如果执行“A a,b(3),*p”语句,那么该构造函数共被调用了几次?是不是对于构造函数来说,如果创建了一个对象就已经开始调用了构造函数么?那么如果是指针,是不是只有给它分配空间了才会调用构造函数? 应该是A a,b,*p;吧?如果是这样,构造函数调用4次,A *p;是一个类的指针,不是类的对象所以不调用构造函数。
A a调用了一次无参构造函数
A b(3)调用了一次单参构造函数
A* p调用了零次构造函数
只要产生出新对象,就要调用构造函数,如上题的A a和A b(3)都分别产生了一个新对象,所以分别调用了一次构造函数。
而A* p没有产生A类型的对象,所以没有调用构造函数。 不理解,有什么区别 产生指针是不用调用构造函数的,所以就两次,一次默认构造函数,一次带参的
页:
[1]