5

コピー const が宣言されていても、ベクトルを持つコード (c++、visual studio 2010) を作成しましたが、コピー 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': コピー コンストラクターが使用できないか、コピー コンストラクターが '明示的' と宣言されています c:\program files\microsoft visual studio 10.0\vc\include\xmemory 48 1 削除

誰でも私を助けてください

4

2 に答える 2

17

コピー コンストラクターは、オブジェクトを const 参照として受け取る必要があるため、次のようにする必要があります。

A(const A &a){ cout << "Copy Constructor of A is acting" << endl; }
于 2010-05-28T16:13:02.740 に答える
5

コピー コンストラクターはconst refを取ると考えてください

試す

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

それが役立つことを願っています

于 2010-05-28T16:17:45.790 に答える