Sembra che Fortran 90 non consenta costanti denominate nei tipi di dati derivati. È vero? Il seguente codice non funziona.Costanti denominate come componenti di un tipo di dati derivato
program my_prog
implicit none
type :: my_type
integer, parameter :: a = 1
real(kind(1.d0)) :: b
end type my_type
type (my_type) :: complex_type
end program my_prog
Il compilatore dice che l'istruzione parametro non è consentita nelle definizioni di tipo derivato.
Quando rimuovo la parola chiave parameter
, tutto funziona correttamente. Ma allora come posso assicurarmi che il componente a
non venga modificato altrove?
* ... come posso essere sicuro che 'a' non venga modificato altrove? * Intendi dire che non lo usi? : D –
In Fortran 2003 ci sono molte altre possibilità. Può essere una variabile privata con metodi setter/getter. Può essere un componente protetto ... –