参考下面的代码:可以看到push_back 调用了拷贝构造函数
#include <iostream>
#include <vector>
using namespace std;
class A
{
public:
A()
{
cout<<"A()"<<endl;
}
A(const A& a) // 增加拷贝构造函数
{
cout << "copy A()" << endl;
}
~A()
{
cout<<"~A()"<<endl;
}
public:
int v;
};
int main()
{
A a;
vector<A> vec;
cout<<"HELLO"<<endl;
vec.push_back(a);
return 0;
}
/*
这样就会输出:
A()
HELLO
copy A()
~A()
~A()
*/
本文通过一个C++示例程序详细介绍了如何在使用std::vector时触发拷贝构造函数的过程,并展示了对象被复制及析构的具体输出,帮助读者理解C++中拷贝构造函数的工作原理。
461

被折叠的 条评论
为什么被折叠?



