Can you summarize the following document?
        
  

  接收引數的構造器被稱為引數化構造器。引數的數量可以大於或等於一。例如,在C++中:使用引數化構造器宣告物件時,必須傳入初始值作為構造器的引數。在這種情況下,一般的宣告物件的方法可能不再適用。  構造器函式的呼叫方式可以分為顯式和隱式兩種。

  如果在編寫一個可例項化的類時沒有專門編寫構造器,多數程式語言會自動生成預設構造器。  預設構造器的特性依不同語言而定。某些情況下它會將所有的例項變數同時初始化到0,或者任何其他別的值;某些預設構造器什麼也不會做。  某些語言 (Java, C#, VB.NET) 會預設構造由該類型別定義的陣列,使其充滿空值引用。沒有空值引用的語言一般會禁止預設構造包含不可預設構造物件的陣列,或者要求在建立時專門初始化這些數值 (C++):

  轉換建構子可定義從使用者定義或內建型別轉換成使用者定義型別的作業。

  複製建構子(英語:Copy constructor)是C++程式語言中的一種特別的建構子,習慣上用來建立一個全新的物件,這個全新的物件相當於已存在物件的副本。這個建構子只有一個引數(引數):就是用來複制物件的參照(常用const修飾)。建構子也可以有更多的引數,但除了最左第一個引數是該類別的參照類別型外,其它引數必須有預設值。

  移動建構函式(英語:Move constructor)是 C++11 中新增的一種建構函式,用來避免多餘的分配新記憶體——複製——銷燬舊記憶體的操作。參見 C++11 條目內的介紹。

  在 Java, C# 和 VB.NET 裡,構造器會在一種叫做堆的特殊資料結構裡建立作為引用型別的例項。值型別(例如 int, double 等等)則會建立在叫做棧的有序資料結構裡。VB.NET and C# 會允許用 "new" 來建立值型別的例項。然而在這些語言裡,即使使用這種方法建立的物件依然只會在棧裡。  在 C++ 裡,不用 new 建立的物件會儲存在棧裡,使用 new 建立時則會在堆裡。它們必須分別使用解構函式或者 delete 操作才能被刪除。

  

  在Java裡,構造器和其他方法的主要差別在於: Java 裡的構造器會按照以下順序完成下列工作: 在 Java 中可以通過關鍵詞 codice_21 訪問父類的構造器。不接收任何引數的構造器被稱作“無引數構造器”。

  在Visual Basic.NET中, 建構子以"codice_3"為定義方法,並且必須是個 Sub。

  

  在C#中,"靜態建構子"是用來初始化任何靜態資料。靜態建構函式也稱為“類建構函式”,由於類建構函式在生成的 MSIL 里名為“.cctor”,因此也被稱為“cctor”。  靜態建構函式允許複雜的靜態變數初始化。 靜態建構函式在該類第一次被訪問時呼叫,任何使用該類的操作(無論是呼叫靜態函式、屬性還是訪問靜態變數,還是構造類的例項)都會引發靜態建構函式的執行。靜態建構函式是執行緒安全的,並且是單例的。當用在泛型類中時,靜態建構函式對於泛型的每個例項化都呼叫一次。靜態變數也同樣如此。

  C++ 的建構函式以該類的類名為標識,且不寫返回值型別也無法返回值:  建構函式的函式體執行是在各個成員構造完之後才開始,因此要想更改成員的構造方式需要使用成員初始化列表:  基類的方式與成員相同,是在初始化列表中寫基類名、接建構函式參數列:  複製建構函式接受同類物件的左值引用(一般為 const T &)、移動建構函式接受右值引用(一般為 T&&):  C++ 中,程式設計師若未對某類定義建構函式(以及賦值函式、解構函式),編譯器在滿足條件時會定義相應的函式,參見 等頁面。
在類別基礎的物件導向程式設計中,構造器(英語: Constructor,有時簡稱 ctor),別稱:構造方法、建構函式、建構子)是一個類裡用於建立物件的特殊子程式。它能初始化一個新建的物件,並時常會接受引數用以設定例項變數變數。