1.假定AB为一个类,则执行“AB a(5) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为 4
解析:
AB a(5) 调用一次构造函数,并传递参数为4
AB b[3] 调用三次构造函数,因b数组有三个元素都是AB类的对象
AB *p[2] 只说明指向AB对象的两个指针,而指针不是对象,故不调用构造函数。
2.假设A是一个类的名字,下面的语句生成 2 个类A的对象: A *arry[4] ={new A(),NULL,new A()} ;
3.关于运算符new的描述中,错误的是D
A.它可以创建对象或变量
B.它可以创建对象数组或一般类型数组
C.用它创建对象或对象数组时要调用相应的构造函数
D.用它创建的对象可以不用delete运算符释放
知识补充:new其实就是告诉计算机开辟一段新的空间,但是和一般的声明不同的是,new开辟的空间在堆上,而一般声明的变量存放在栈上。通常来说,当在局部函数中new出一段新的空间,该段空间在局部函数调用结束后仍然能够使用,可以用来向主函数传递参数。另外需要注意的是,new的使用格式,new出来的是一段空间的首地址。所以一般需要用指针来存放这段地址
4. 关于友元函数的描述中,错误的是B
A.友元函数不是成员函数
B.友元函数只可访问类的私有成员
C.友元函数的调用方法同一般函数
D.友元函数可以是另一类中的成员函数