2011-07-08 80 views
-3

返回不能我們只需重載「=」運算符來代替對象聲明使用拷貝構造函數和函數,從即拷貝構造函數和函數從

someclass X = Y; 
X=somefunction(); 

回到我可以重載「=」運算符在某些類中並不提供複製構造函數。

是否有任何情況需要複製構造函數和重載「=」運算符以避免來自兩個獨立對象的指針變量指向相同的內存位置?

+1

你在說什麼特定的語言? –

+0

你的問題不清楚。你的示例代碼已經使用了複製構造函數(假設'Y'是'someclass'類型]和'operator ='。 –

+0

我不明白這句話:「是否有任何需要複製構造函數和重載的情況」=「運算符?」 – 2011-07-08 13:27:39

回答

1

不,這些是不同的概念,並且它們都是出於性能原因而存在的。當你創建一個新的對象(從現有對象)

  • 拷貝構造函數使用。
  • 當對象已存在時使用賦值,但您要爲其分配新值。

如果您提供其中一個提供另一個。