Я написал код (C++, Visual Studio 2010), который имеет вектор, даже я, хотя константа копии объявляется, но все еще показывает, что константа копии не объявляется
Здесь код
#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': никакой доступный конструктор копии или конструктор копии не объявляются, 'явные' c:\program files\microsoft visual studio 10.0\vc\include\xmemory 48 1 удаляют
Кто-либо помогите мне
Конструктор копирования должен принимать объект как константная ссылка, поэтому он должен быть:
A(const A &a){ cout << "Copy Constructor of A is acting" << endl; }
Думайте, что конструкторы копирования принимают const ref'ы
try
A(const A &a) { cout << "Copy Constructor of A is acting" << endl ; }
Надеюсь, это поможет