1. 若MyClass是一个类名,其有如下语句序列:
|
|
MyClass c1,*c2;new
MyClass; |
上面的语句序列调用构造函数个数是2。
解析:
2. A为一个类,则执行A (4),b[4],*p[5];后,调用构造函数的次数为:5
解析:AB a(4);是声明一个AB类对象a,并用4初始化a,因为只声明了一个对象,所以执行构造函数1次。
b[4];是声明一个AB类的对象数组,有4个元素(就是有4个对象),所以要调用4次构造函数。
*p[5];是声明一个5元素数组p,每个元素都是AB类对象的指针;指针并不是对象,因没有创建对象,所以不执行构造函数。最终一共执行了5次构造函数。
3.
解析:
c1要调用一次构造函数;
c2只是一个指针,用来动态描述对象,不会调用类的构造函数;
c3的右边新创建一个对象会调用构造函数。但是注意,这里的赋值运算符不是类中的赋值运算符,而是普通的赋值运算符;
c4是一个对象引用,是c1的一个别名,所以不会调用构造函数。
解析:AB a(4);是声明一个AB类对象a,并用4初始化a,因为只声明了一个对象,所以执行构造函数1次。
b[4];是声明一个AB类的对象数组,有4个元素(就是有4个对象),所以要调用4次构造函数。
*p[5];是声明一个5元素数组p,每个元素都是AB类对象的指针;指针并不是对象,因没有创建对象,所以不执行构造函数。最终一共执行了5次构造函数。
3.
26万+

被折叠的 条评论
为什么被折叠?



