64,642
社区成员
发帖
与我相关
我的任务
分享
int main(int argc, char* argv[])
{
std::vector <A> x(3); // 1次默认构造,3次拷贝构造,1次析构//没有听说过,学习了
A a1; // 1次默认构造
A a2; // 1次默认构造
A a3; // 1次默认构造
x.push_back(a1); // 1次拷贝构造
x.push_back(a2); // 1次拷贝构造
x.push_back(a3); // 1次拷贝构造
return 0;
}
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <vector>
class A{
public:
A(){std::cout <<"default constructor" <<std::endl;}
};
int main()
{
std::vector <A> x(3);
A a1,a2,a3;
x.push_back(a1);
x.push_back(a2);
x.push_back(a3);
std::cout<<x.size()<<std::endl;//这里输出一个6,里面有六个元素,为什么?
getchar();
getchar();
return 0;
}
//这个完整重贴下!
#include <iostream>
#include <vector>
using namespace std;
class A
{
public:
A()
{
std::cout <<"default constructor" <<std::endl;
}
A(const A & a)
{
cout<<"Copyconstructor"<<endl;
}
~A()
{
cout<<"Desconstructor"<<endl;
}
};
int main(int argc, char* argv[])
{
std::vector <A> x(3); //以class A为参数类型 需要调通一次默认的构造函数
// A a1,a2,a3; //构造三个对象,调用三次构造函数
//x.push_back(a1);
//x.push_back(a2);
//x.push_back(a3);
getchar();
return 0;
}
/*输出:
default constructor
Copyconstructor
Copyconstructor
Copyconstructor
Desconstructor
*/
//这个完整重贴下!
#include <iostream>
#include <vector>
using namespace std;
class A
{
public:
A()
{
std::cout <<"default constructor" <<std::endl;
}
A(const A & a)
{
cout<<"Copyconstructor"<<endl;
}
~A()
{
cout<<"Desconstructor"<<endl;
}
};
int main(int argc, char* argv[])
{
std::vector <A> x(3); //以class A为参数类型 需要调通一次默认的构造函数
A a1,a2,a3; //构造三个对象,调用三次构造函数
//x.push_back(a1);
//x.push_back(a2);
//x.push_back(a3);
getchar();
return 0;
}
/*
default constructor
Copyconstructor
Copyconstructor
Copyconstructor
Desconstructor
default constructor
default constructor
default constructor
*/
//这个完整重贴下!
#include <iostream>
#include <vector>
using namespace std;
class A
{
public:
A()
{
std::cout <<"default constructor" <<std::endl;
}
A(const A & a)
{
cout<<"Copyconstructor"<<endl;
}
~A()
{
cout<<"Desconstructor"<<endl;
}
};
int main(int argc, char* argv[])
{
std::vector <A> x(3); //以class A为参数类型 需要调通一次默认的构造函数
A a1,a2,a3; //构造三个对象,调用三次构造函数
x.push_back(a1);
x.push_back(a2);
x.push_back(a3);
getchar();
return 0;
}
/*
default constructor
Copyconstructor
Copyconstructor
Copyconstructor
Desconstructor
default constructor
default constructor
default constructor
Copyconstructor
Copyconstructor
Copyconstructor
Copyconstructor
Desconstructor
Desconstructor
Desconstructor
Copyconstructor
Copyconstructor
Copyconstructor
Copyconstructor
Copyconstructor
Desconstructor
Desconstructor
Desconstructor
Desconstructor
Copyconstructor
*/
//这个完整重贴下!
#include <iostream>
#include <vector>
using namespace std;
class A
{
public:
A()
{
std::cout <<"default constructor" <<std::endl;
}
A(const A & a)
{
cout<<"Copyconstructor"<<endl;
}
~A()
{
cout<<"Desconstructor"<<endl;
}
};
int main(int argc, char* argv[])
{
std::vector <A> x(3); //以class A为参数类型 需要调通一次默认的构造函数
A a1,a2,a3; //构造三个对象,调用三次构造函数
x.push_back(a1);
x.push_back(a2);
x.push_back(a3);
return 0;
}
//改成这样,你再运行,看下结果,应该能明白了
#include <iostream>
#include <vector>
using namespace std;
class A
{
public:
A()
{
std::cout <<"default constructor" <<std::endl;
}
A(const A & a)
{
cout<<"Copyconstructor"<<endl;
}
};
int main(int argc, char* argv[])
{
std::vector <A> x(3);
A a1,a2,a3;
x.push_back(a1);
x.push_back(a2);
x.push_back(a3);
return 0;
}