C++ вектор STL не принимает конструктора копии

Я написал код (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 удаляют

Кто-либо помогите мне

5
задан BlueRaja - Danny Pflughoeft 28 May 2010 в 16:10
поделиться

2 ответа

Конструктор копирования должен принимать объект как константная ссылка, поэтому он должен быть:

A(const A &a){ cout << "Copy Constructor of A is acting" << endl; }
17
ответ дан 18 December 2019 в 07:08
поделиться

Думайте, что конструкторы копирования принимают const ref'ы

try

A(const A &a) { cout << "Copy Constructor of A is acting" << endl ; } 

Надеюсь, это поможет

5
ответ дан 18 December 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: