📜  C++ |构造函数|问题16

📅  最后修改于: 2021-05-25 22:27:15             🧑  作者: Mango

预测以下程序的输出?

#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基础课程》。