So haben statische Methoden in anderen Sprachen Zugriff auf statische Member und ihre Sichtbarkeit wird durch den Klassenbereich eingeschränkt. In fortran gibt es keine statischen Mitglieder (korrigiere mich, wenn ich falsch liege) und der Methodenname ist global zugänglich, so dass ich nicht zwei statische Methoden mit demselben Namen in verschiedenen Klassen haben kann. Ich halte "NOPASS" -Methoden für "statisch", aber ich bin mir nicht einmal sicher, ob der Begriff anwendbar ist. Angesichts des oben Gesagten sehe ich keinen Unterschied von nur einfachen Modulfunktionen. Gibt es einen Vorteil der Verwendung von NOPASS-Methoden gegenüber einfachen Funktionen?Prozedur nopass vs. Plain-Funktion in Fortran
Edit:
Eine Abbildung der Unfähigkeit, in verschiedenen Klassen zwei statische Methoden mit dem gleichen Namen zu haben:
module test_mod
type type1
contains
procedure, nopass :: proc => proc1
end type
type type2
contains
procedure, nopass :: proc => proc2
end type
contains
subroutine proc1()
print *, 'proc1'
end subroutine
subroutine proc2()
print *, 'proc2'
end subroutine
end module
Offensichtlich kann ich nicht nur call proc()
jetzt sagen, noch kann ich die Klassenname, um dem Compiler zu helfen, die richtige Methode auszuwählen.
Was meinen Sie nicht dasselbe ist "Ich kann nicht zwei statische Methoden mit demselben Namen in verschiedenen Klassen haben"? – francescalus
@francescalus Ich habe meine Frage – DartLenin
aktualisiert Sie können "proc" in keinem Fall aufrufen. 'call t1% proc' andererseits (für' type (type1) t1') ... – francescalus