我写了一个代码(c ++,visual studio 2010),它有一个向量,即使我虽然声明了复制const,但仍然显示未声明复制const
这里是代码
#include<iostream>
#include<vector>
using namespace std;
class A
{
public:
A() { cout << "Default A is acting" << endl ; }
A(A &a) { cout << "Copy Constructor of A is acting" << endl ; }
};
int main()
{
A a;
A b=a;
vector<A> nothing;
nothing.push_back(a);
int n;
cin >> n;
}
我得到的错误是
错误1错误C2558:类'A':没有可用的复制构造函数或复制构造函数被声明为'explicit'c:\ program files \ microsoft visual studio 10.0 \ vc \ include \ xmemory 48 1 delete
有人请帮帮我
答案 0 :(得分:17)
复制构造函数应该将对象作为const引用,因此它应该是:
A(const A &a){ cout << "Copy Constructor of A is acting" << endl; }
答案 1 :(得分:5)
认为复制构造函数采用 const ref的
尝试
A(const A &a) { cout << "Copy Constructor of A is acting" << endl ; }
希望有所帮助