我想在兩個類之間進行轉換並避免臨時對象。如何避免轉換函數中的複製構造函數?
這裏是我的Square
聲明:
class CSquare
{
public:
int dimension;
CSquare(int dimension);
// Conversion to Rectangle
operator CRectangle();
~CSquare(void);
};
,這裏是我的Rectangle
聲明:
class CRectangle
{
public:
int length;
int width;
CRectangle(int length, int width);
//Copy Constructor
CRectangle(const CRectangle& anotherRectangle);
~CRectangle(void);
};
爲什麼
CSquare aSquare = CSquare(10);
CRectangle convertedRect = (CRectangle) aSquare;
調用拷貝構造函數?
我有一個轉換功能:
CSquare::operator CRectangle(){
return CRectangle(CSquare::dimension,CSquare::dimension);
}
但我仍然得到一個臨時對象。
如何避免臨時對象?
我忘了稱讚你不必矩形從廣場或周圍的其他方法:) – 2011-02-01 18:46:13