ページの先頭行へ戻る
NetCOBOL for .NET V8.0 メッセージ集
FUJITSU Software

2.4.259 JMN3486I-S

INHERITS句に指定されたクラスが,パラメタのないコンストラクタを持たない場合,コンストラクタメソッドを明に定義しなければなりません.かつそのコンストラクタメソッドの手続きの宣言節部分を除く先頭には,親クラスのコンストラクタを呼び出すINVOKE文を記述しなければなりません.

      000001 IDENTIFICATION   DIVISION.
      000002  CLASS-ID.   C3486A.
      000003 ENVIRONMENT      DIVISION.
      000004 CONFIGURATION    SECTION.
      000005*
      000006 OBJECT.
      000007 DATA DIVISION.
      000008 WORKING-STORAGE  SECTION.
      000009  01  DATA1    PIC S9(8) COMP-5.
      000010  01  DATA2    PIC X(50).
      000011 PROCEDURE DIVISION.
      000012*
      000013 METHOD-ID.  NEW.
      000014 DATA DIVISION.
      000015 WORKING-STORAGE SECTION.
      000016 LINKAGE SECTION.
      000017  01  PRM1   PIC S9(8) COMP-5.
      000018  01  PRM2   PIC X(50).
      000019 PROCEDURE DIVISION USING  PRM1 PRM2.
      000020     MOVE  PRM1 TO  DATA1.
      000021     MOVE  PRM2 TO  DATA2.
      000022 END METHOD NEW.
      000023*
      000024 END OBJECT.
      000025 END CLASS C3486A.
    
      000001 IDENTIFICATION   DIVISION.
      000002  CLASS-ID.   C3486 INHERITS C3486A.
      000003 ENVIRONMENT      DIVISION.
      000004 CONFIGURATION    SECTION.
      000005   REPOSITORY.
      000006      CLASS C3486A.
      000007 OBJECT.
      000008 DATA DIVISION.
      000009 WORKING-STORAGE  SECTION.
      000010  01  OBJCOUNT   PIC S9(8) COMP-5  VALUE 1.
      000011 PROCEDURE DIVISION.
      000012*
      000013 END OBJECT.
      000014 END CLASS C3486.
      000015*
    

C3486.cob (0) : JMN3486I-S INHERITS句に指定されたクラスが,パラメタのないコンストラクタを持たない場合,コンストラクタメソッドを明に定義しなければなりません.かつそのコンストラクタメソッドの手続きの宣言節部分を除く先頭には,親クラスのコンストラクタを呼び出すINVOKE文を記述しなければなりません.

詳細な説明

INHERITS句に指定したクラス(親クラス)にパラメタを持たないコンストラクタが存在する場合,コンパイラは現在翻訳中のクラスのコンストラクタ(NEWメソッドとして明に書かれたもの,またはコンパイラが暗黙に生成したもの)の手続きの先頭に,親クラスのコンストラクタの呼び出しを自動生成します.しかし親クラスにパラメタを持つコンストラクタしか存在しない場合,コンパイラは渡すパラメタ値を判断できませんので,このときには,コンストラクタ(NEWメソッド)を明に定義して頂くと共に,その手続きの先頭に親クラスのコンストラクタを呼び出すINVOKE文を明に記述して頂く必要があります.