• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Star_Lee
博客园    首页    新随笔    联系   管理    订阅  订阅

Geant4中 set mandatory user action classes建立新的对象形式

参考C++中default constructor 的用法:http://www.cplusplus.com/doc/tutorial/classes2/

 constructor是类的一个特殊成员函数,这个函数的函数标识符与类的标识符一样,且无返回值类型,当创建一个类的对象的时候,constructor函数在对象的创建时就被执行。

一个default constructor不带有任何参数,但可以给constructor定义参数,这些参数在类对象的创建时将被初始化。

 

Geant的main()函数中 set mandatory user action classes创建类的对象时要参考类中是否定义了default constructor,若在类中没有constructor构建函数,那么在类中将默认创建一个constructor函数,且该函数成员没有参数,此时在类外面创建该类的对象时不能带有参数,即不能在对象后面加括号,当类中采用了constructor构建函数时,且该函数带有参数,那么创建该类的对象时需要加括号,如下图

 

在main()函数中

DetectorConstruction*   det=new DetectorConstruction();

PhysicsList*            phys = new PhysicsList();

都采用了函数对象来申明,这是因为在DetectorConstruction.hh头文件和PhysicsList.hh头文件中定义相应的DetectorConstruction类和PhysicsList类时采用了C++中类成员的constructor函数构造方法并构造了相应的DetectorConstruction(),PhysicsList()类成员,见下图,因此在类创建类的对象初始化时应采用函数形式,即加括号。

posted @ 2017-11-03 14:49  Star_Lee  阅读(410)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3