问题 填空题

创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用缺省构造函数。下列程序涉及到对象数组的创建和单个对象的创建,其输出结果是 【9】 。 #include<iostream> using namespace std; class Foo{ public: Foo(int x){cout<<’A’;} Foo(){} }; int main() { Foo f[3], g(3); return 0; }

答案

参考答案:A

解析: 本题考查的是类的构造函数。题目中创建了一个含有3个元素的对象数组 f,因为创建对象数组时不能传递构造参数,所以系统会调用3次Foo类的默认构造函数,而该函数什么也没有做。另外还定义了一个对象8,并传入构造参数3,所以系统会调用1次Foo类中带有一个int型参数的那个构造函数,输出一个字符’A’。所以整个程序输出的结果为A。

单项选择题
选择题