C++构造函数问题16

预测以下程序的输出?

null

#include <iostream>
using namespace std;
class Test
{
private :
int x;
public :
Test( int i)
{
x = i;
cout << "Called" << endl;
}
};
int main()
{
Test t(20);
t = 30; // conversion constructor is called here.
return 0;
}


(A) 编译错误 (B)

Called
Called

(C)

Called

答复: (B) 说明: 如果一个类有一个可以用单个参数调用的构造函数,那么这个构造函数就成为转换构造函数,因为这样的构造函数允许自动转换到正在构造的类。

当将单个参数的类型分配给对象时,可以在任何地方调用转换构造函数。给定程序的输出为

Called
Called

这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享