#include <iostream>
#include <vector>
using namespace std;
struct X
{
X() { cout << "构造" << endl; }
X(const X&) { cout << "拷贝" << endl; }
X& operator=(const X& x)
{
cout << "赋值" << endl;
return *this;
}
~X() { cout << "析构" << endl; }
};
int main()
{
X b;
cout << endl;
vector<X> vec;
/*
vec.push_back(b);
cout << endl;
*/
vec.push_back(b);
system("pause");
return 0;
}
这段代码运行显示如下:
但是如果把注释去掉,push_back(b)两次的话,第二次就会这样显示:
请问是什么原因?