预测以下程序的输出?
#include
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
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。