2011-02-08 53 views

回答

2

A(A a){/*do something*/}可以像拷貝構造函數很有幫助。

3

如果你指的是一個與參數,沒有理由對具有可言,因爲它完全忽略參數,並且已經有另一個構造函數具有相同的效果。

如果你可以給一個更現實的例子,我們也許能夠提供更多的有用信息......

0

你的問題很清楚,但基本上如果你哈瓦一個類,有一個構造函數,即採用相同的類的實例,那麼你有一個拷貝構造函數。即創建一個具有與原始相同內部值的新實例的構造函數。

編輯 - 當然假設你的構造函數除了創建一個新的實例外還有其他的東西。

1

除非需要複製構造函數,否則沒有任何優勢。如果這個對象應該是可克隆的,而不是使用複製構造器語義,我會建議使用clone()方法。

2

正如其他人所說,你有一個複製構造函數。有一個number of reasons爲什麼你可能想要一個複製構造函數。其中一些是:

  1. 您可以提供克隆方法的替代方法。 (這是通過Clonable接口實現的。)
  2. 複製構造函數很容易實現。
  3. 您可以使用其他構造函數來構建副本(通過從原始對象中提取數據並轉發到常規構造函數)。

查看我添加到這篇文章中的鏈接以獲得更多關於複製構造函數的信息,以及爲什麼要使用它們(如果你需要的話)。

0

其中依賴注入或序列號被認爲也有可能是在一些基於委託設計模式如decoratorproxy

提供一個默認的構造有用的可能仍然被認爲是很好的做法,尤其是在場景。