簡體   English   中英

c ++ STL向量不接受復制構造函數

[英]c++ STL vector is not acccepting the copy constructor

我寫了一個代碼(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':沒有可用的復制構造函數或復制構造函數被聲明為'顯式'c:\\ program files \\ microsoft visual studio 10.0 \\ vc \\ include \\ xmemory 48 1刪除

有人請幫幫我

復制構造函數應該將對象作為const引用,因此它應該是:

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

認為復制構造函數需要const ref

嘗試

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

希望有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM