您的位置:首页 > 其它

vector装入自定义类多个对象的时候复制构造函数参数必须有const修饰

2016-03-10 11:26 453 查看
#include<iostream>
#include<vector>
using namespace std;
class A{
private:
int value;
public:
A(){
cout << " constructor " << endl;

}
A(int n){
value=n;
cout << "constructor " << endl;
}

A(const A &other){//必须是const的,否则下面vector要报错
value = other.value;
cout << "copy " << endl;
}
/*	A(A o){
value = o.value;
}
*/	void print(){
cout << value << endl;
}
};

void print(A a){
a.print();
}

int main(){
/*A a(10);
A b = a;
A c(b);
b.print();
print(b);
*/
vector<A> v(10);

return 0;
}

经过验证,vector只初始化第一个A,之后的都是复制构造的。

$ ./a
constructor
copy
copy
copy
copy
copy
copy
copy
copy
copy
copy
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: