|
本帖最后由 weixing1531 于 2019-6-27 20:24 编辑
方法1:传统方法
模块中
[Fortran] 纯文本查看 复制代码 01 | type , public :: rational |
07 | procedure , pass ( this ) , public :: rational = > new |
10 | subroutine new ( this , nn , dd ) |
11 | class ( rational ) , intent ( out ) :: this |
12 | integer , intent ( in ) :: nn , dd |
主程序中
方法2:GitHub上大牛们喜欢用
模块中
[Fortran] 纯文本查看 复制代码 01 | type , public :: rational |
14 | function new ( nn , dd ) result ( rs ) |
15 | integer , intent ( in ) :: nn , dd |
主程序中
两种构造方法有什么区别呢?
个人理解
方法1:构造方法是子例程,属于实例方法,子类可以继承或重写父类的构造方法,子类重写构造方法时可用call this%父类名%构造方法名()来节省对象初始化的代码量
方法2:构造方法是函数,属于模块方法(实用方法),采用接口名与类名重名的方式,在属性私有前提下实现了结构构造器,子类不可以继承父类的构造函数,需要在子类所在模块中手动写构造函数(不能与父类构造函数重名)
|
|