C++ 如何使用构造函数调用explicite初始化对象的向量?

C++ 如何使用构造函数调用explicite初始化对象的向量?,c++,class,vector,initialization,C++,Class,Vector,Initialization,在下面的示例中,我尝试使用每个构造函数调用创建不同的对象。我想知道如何通过显式调用构造函数来实现这一点 class A { public: static int count; int num; A() { num = ++count; } }; int A::count = 0; main() { vector<A> x(5, A()); // all A.num values == 1 vector<A> y(5);

在下面的示例中,我尝试使用每个构造函数调用创建不同的对象。我想知道如何通过显式调用构造函数来实现这一点

class A {
public:
    static int count;
    int num;
    A() { num = ++count; }
};

int A::count = 0;

main() {
    vector<A> x(5, A());  // all A.num values == 1
    vector<A> y(5);       // A.num values == 2,3,4,5,6 but no explicit constructor call
}
A类{
公众:
静态整数计数;
int-num;
A(){num=++count;}
};
int A::count=0;
main(){
向量x(5,A());//所有A.num值==1
向量y(5);//A.num值==2,3,4,5,6,但没有显式构造函数调用
}

您需要解决的实际问题是什么?为什么需要显式调用构造函数?为什么显式调用构造函数会使所有5个对象的
A.num=1
?为什么
num
不通过静态变量
count
递增?@E.N.D因为它将
用值为“value”的元素的“count”副本构建容器。
,所以它将把传递给协构器的元素
A()
复制5次。@t.niese感谢您解决了我的疑问。你太棒了
main
必须显式返回
int