填空题
创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用缺省构造函数。下列程序涉及到对象数组的创建和单个对象的创建,其输出结果是{{U}} 【9】 {{/U}}。
#include<iostream>
using namespace std;
class Foo{
public:
Foo(int x){cout<<'A';}
Foo(){}
};
int main()
{
Foo f[3], g(3);
return 0;
}
【正确答案】
1、A
【答案解析】[解析] 本题考查的是类的构造函数。题目中创建了一个含有3个元素的对象数组 f,因为创建对象数组时不能传递构造参数,所以系统会调用3次Foo类的默认构造函数,而该函数什么也没有做。另外还定义了一个对象8,并传入构造参数3,所以系统会调用1次Foo类中带有一个int型参数的那个构造函数,输出一个字符'A'。所以整个程序输出的结果为A。