參考C++中default constructor 的用法:http://www.cplusplus.com/doc/tutorial/classes2/函數
constructor是類的一個特殊成員函數,這個函數的函數標識符與類的標識符同樣,且無返回值類型,當建立一個類的對象的時候,constructor函數在對象的建立時就被執行。對象
一個default constructor不帶有任何參數,但能夠給constructor定義參數,這些參數在類對象的建立時將被初始化。blog
Geant的main()函數中 set mandatory user action classes建立類的對象時要參考類中是否認義了default constructor,若在類中沒有constructor構建函數,那麼在類中將默認建立一個constructor函數,且該函數成員沒有參數,此時在類外面建立該類的對象時不能帶有參數,即不能在對象後面加括號,當類中採用了constructor構建函數時,且該函數帶有參數,那麼建立該類的對象時須要加括號,以下圖io
在main()函數中class
DetectorConstruction* det=new DetectorConstruction();List
PhysicsList* phys = new PhysicsList();方法
都採用了函數對象來申明,這是由於在DetectorConstruction.hh頭文件和PhysicsList.hh頭文件中定義相應的DetectorConstruction類和PhysicsList類時採用了C++中類成員的constructor函數構造方法並構造了相應的DetectorConstruction(),PhysicsList()類成員,見下圖,所以在類建立類的對象初始化時應採用函數形式,即加括號。im