2
我正在使用FORTRAN中的OOP功能,但我不確定是否可以動態分配派生類型。可能是體外受精不支持它或標準(2003)禁止這樣做。FORTRAN動態分配派生類型
爲了說明,我有一個基類DiscPlayer和2種派生類型DVD播放機和BDPlayer
type, abstract :: DiscPlayer
private
integer, public :: Capacity = 3
endtype DiscPlayer
和
type, extends(DiscPlayer) :: DVDPlayer
private
integer, public :: RemoteController
endtype DVDPlayer
在主程序中,我希望變量類型在運行來決定時間。
program test
use ModDiscPlayer
use ModDVDPlayer
use ModBDPlayer
implicit none
class(DiscPlayer), allocatable :: P1
integer :: i
i = 1 ! will add user input
select case(i)
case(1)
allocate(DVDPlayer::P1)
P1%RemoteController = 1
case(2)
allocate(BDPlayer::P1)
endselect
endprogram test
然後我得到了錯誤的信息:錯誤#6460:這不是在包容結構中定義的字段名稱。任何解釋?
是的。這從邏輯上講是合理的。你能講更多關於課堂的嗎?我明白類型是。班級和班級有什麼不同? – FortCpp 2014-09-05 23:04:22
'類是(t)'如果動態類型是't'或任何擴展類型't',則執行該段。 – 2014-09-05 23:08:02