定义以下类:
class A{
public:
A(): A(0) { }
A(int i){
cout << "A(" << i << ")" << endl;
};
A(int i, int j){
cout << "A("<< i << ", " << j << ")" << endl;
}
};
以下是主函数的内容,求输出结果。
int main(){
A a1;
A a2(2);
A a3 = A(3);
A a4 = (5);
A a5(4, 5);
A a6 = (6, 7); // comma express
A a7();
return 0;
}
解析
A a1; // 声明一个对象a1,调用默认构造函数。
A a2(2); // 声明对象a2,调用有参构造函数。
A a3 = A(3); // 声明对象a3,调用有参构造函数。
A a4 = (5); // 同上,调用有参构造函数。
A a5(4, 5); // 调用两个参数的构造函数。
A a6 = (6, 7); // 调用一个参数的构造函数,右边只是一个逗号表达式。
A a7(); // 声明一个函数a7,它的返回值是一个A类型对象。
要特别注意的是最后两处用法,一个是逗号表达式,一个是函数声明。
输出结果为:
A(0)
A(2)
A(3)
A(5)
A(4, 5)
A(7)
此处评论已关闭