class cA{
private:
std::thread t;
public:
cA()=default;
};
Somehere在另一個源文件:
cA *a = new cA();
std::vector<cA> v;
v.push_back(*a);
這導致在編譯時以下錯誤:
C2280: cA::cA(const cA &)': attempting to reference a deleted function
我認爲這可能與std::thread
缺少拷貝構造函數和tha t矢量試圖製作cA
對象的副本。有人願意解釋嗎?
(1)線程是不可拷貝,和(2)這三條線'CA * A =新的CA(); ; std :: vector v; v.push_back(* a);'相當強烈地暗示你需要早點去理解C++指針。你來自Java背景嗎?這是Java難民的典型錯誤。 –
你會詳細解釋一下(2)有什麼問題嗎?我的意思是這只是我在這裏寫的示例代碼,但看看你的反應,我很好奇。我的意思是關於指針,我認爲我很好(我來自Reverse Engi字段; P) – Rafal
幾乎所有的東西都是錯的。這不是你如何在C++中填充對象的向量。我重複我的問題,你是從Java背景來的嗎? –