我有以下類別:這是爲什麼發生?運算符=和拷貝構造函數
class CRectangle
{
CRectangle(string color);
CRectangle(CRectangle &origin);
/* Some more code */
};
和這個其他:
class CPlane
{
/* Some more code */
CRectangle boundingBox();
};
爲什麼我能做到這一點? :
CRectangle rectangle1;
CRectangle rectangle2=rectangle1;
CRectangle rectangle3(rectangle1); //Copy constructor.
但我不能這樣做:
CPlane plane;
CRectangle rectangle4=plane.boundingBox();
CRectangle rectangle5(plane.boundingBox()); //Copy constructor.
如果我需要我的最後一個工作,我該怎麼辦呢?我想這可能與運營商=
有關,但我不完全清楚。
編輯:修復複製構造函數。錯誤仍然存在。
您的副本構造函數會導致無限遞歸(複製導致副本導致副本......) – juanchopanza 2014-12-13 15:48:10
對於副本構造函數,您應該將參數作爲const引用。 – Cornstalks 2014-12-13 15:48:19
作爲未來的提示,當某些事情「不起作用」時,請包括**什麼都行不通**,I.E.來自編譯器/運行時錯誤的文本或實際輸出與預期輸出。 – aruisdante 2014-12-13 15:52:56