0
我想擴展一個已經擴展類型的Fortran類型。我知道,當我有一個擴展類型,我可以寫擴展擴展類型
type o1
...
type, extends(o1) :: o2
...
type(Object1) :: o1
allocate(o2::o1)
如何做這項工作時,我有一個擴展o2
第三種類型?這可能嗎?
我想擴展一個已經擴展類型的Fortran類型。我知道,當我有一個擴展類型,我可以寫擴展擴展類型
type o1
...
type, extends(o1) :: o2
...
type(Object1) :: o1
allocate(o2::o1)
如何做這項工作時,我有一個擴展o2
第三種類型?這可能嗎?
是的。重述代碼和重命名的清晰度:
type :: t1 ! The top level parent type.
integer :: c1 ! A component in the parent type.
end type t1
type, extends(t1) :: t2 ! An extension of t1.
integer :: c2
end type t2
type, extends(t2) :: t3 ! A further extension of t2.
integer :: c3
end type t3
! Declare an object of declared type t1.
class(t1), allocatable :: object
! Allocate that object, giving it a dynamic type of t3.
allocate(t3 :: object)
object%c1 = 1 ! c1 is a component of the declared type.
! Use select type or a type bound procedure to access c2 and c3.
啊謝謝,應該想到這一點。 – 2013-02-16 14:18:24