0

パス プロシージャ ポインタを持つデータ型 (クラス) から複数のインスタンスを作成する場合、各インスタンスに実際のプロシージャ (サブルーチン/関数) がコピーされますか? それとも、ポインターだけがコピーされますか?

たとえば、正しくコンパイルおよび実行される次のコードを考えてみましょう。

モジュール mod2
  暗黙のなし

  プライベート

  type class_type
     整数 :: a、b、c
   含む
     手順 :: add => add_it
  終了タイプ class_type

  public :: class_type

含む

  サブルーチン add_it(this)
    暗黙のなし
    クラス(class_type)、インテント(inout)::これ

    this%c = this%a + this%b

  end サブルーチン add_it

モジュール mod2 の終了

プログラムテスター
  mod2を使う
  暗黙のなし

  タイプ (class_type)、ディメンション (10) :: オブジェクト

  objs(:) = class_type(1, 2, 0)

終了プログラム テスター

データ型 から作成された 10 個のオブジェクトのそれぞれで、サブルーチンadd_itが重複していますclass_typeか? または、サブルーチンの命令セットとadd_itそれへのポインタがどこかに保存されていますか、つまり"procedure :: add => add_it" 各オブジェクトにコピーされていますか?

4

1 に答える 1