예제에서는 사용 가능한 here 예제에서 프로 시저 포인터 구성 요소 f가있는 형식을 정의하려고합니다. 또한 PASS 옵션을 활성화했습니다. 즉 f의 첫 번째 인수는 전달 된 객체 인수입니다. 프로그램에서 프로 시저 포인터, 성공한 개체
는, F는 123내 실수 무엇, 그러나 구성 요소 내가 999을 변경 내가 프로그램을 실행하면, 내가 변화되지 않고 대신 유지 PROC1라는 서브 루틴과 연관된 ? 내가 그 코드를 컴파일 할 때
덕분에
예제에서는 사용 가능한 here 예제에서 프로 시저 포인터 구성 요소 f가있는 형식을 정의하려고합니다. 또한 PASS 옵션을 활성화했습니다. 즉 f의 첫 번째 인수는 전달 된 객체 인수입니다. 프로그램에서 프로 시저 포인터, 성공한 개체
는, F는 123내 실수 무엇, 그러나 구성 요소 내가 999을 변경 내가 프로그램을 실행하면, 내가 변화되지 않고 대신 유지 PROC1라는 서브 루틴과 연관된 ? 내가 그 코드를 컴파일 할 때
덕분에
오류가 발생합니다. 서브 루틴 proc1에서 인수 A의 선언을 type(derivedType)
에서 class(derivedType)
으로 변경하면 사라집니다.
저는 전문가는 아니지만 PASS 속성을 사용할 때 전달되는 인수를 지정해야한다고 생각합니다. 적어도 그것은 그것을 사용하고있는 방식입니다. 예를
...에 대한
function foo(self, baz) return(bar)
type(mytype), intent(in) :: self
real, intent(in) :: baz
...
pass(self) :: foo
는이 프로 시저를 호출하는 방법은 다음과 같습니다 instanceOfMyType%foo(baz)
건배.
어떤 컴파일러를 사용 했습니까? –
@ user578832 : gfortran (4.7) – eriktous