以下几种情况会调用拷贝构造函数
constructor!
copy constructor!
destructor!
constructor!
copy constructor!
destructor!
destructor!
constructor!
copy constructor!
destructor!
copy constructor!
copy constructor!
destructor!
destructor!
destructor!
1. 以一个对象初始化另一个对象
2. 函数以某个对象为参数
3. 函数返回某个对象
4. 初始化序列式容器的元素
- #include <iostream>
- #include <vector>
- using namespace std;
- class test{
- public:
- test()
- {
- cout<<"constructor!"<<endl;
- }
- test(const test& a)
- {
- cout<<"copy constructor!"<<endl;
- }
- ~test()
- {
- cout<<"destructor!"<<endl;
- }
- };
- void fun(test t)
- {
- }
- test func(test t)
- {
- return t;
- }
- int main()
- {
- test t;
- vector<test> v(2);
- return 0;
- }
copy constructor!
destructor!
constructor!
copy constructor!
destructor!
destructor!
destructor!
- int main()
- {
- test t;//construct
- fun(t);//copy construct
- func(t);//copy construct
- // vector<test> v(2);
- return 0;
- }
constructor!
copy constructor!
destructor!
copy constructor!
copy constructor!
destructor!
destructor!
destructor!