在下面的代码中,我有两个参数化构造函数。我编译并运行 Gcc 编译器,但未调用构造函数。
#include <iostream>
class A
{
public:
A(int i)
{
std::cout << "A constructed" << std::endl;
}
};
class B
{
public:
B(A a1)
{
std::cout << "B constructed" << std::endl;
}
};
int main()
{
int i = 5;
B b1(A(i));
std::cout << i << std::endl;
return 0;
}
输出:
5
那么,为什么没有调用构造函数?
答案 0 :(得分:-3)
您的两个构造函数都是在private下定义的。私有构造函数对象不可见,因此无法调用。