最近、クラスがどうもおかしいと思っていたら、コンポジションがうまくできない状態になっています。
バージョンは、ActiveBasic 4.23.00で確認しましたが、詳しく調べてみたら、4.11.03からこの状態のようです。
下のコードでも、コンパイル中、コンパイラが落ちていしまいます。
オブジェクト指向のツボ ~Vol6. コンポジション~よりコード引用 [ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]
コード:
#N88BASIC
Class CParts1
Public
Sub CParts1()
Print "CParts1のコンストラクタ(引数を持たない)。"
End Sub
Sub ~CParts1()
Print "CParts1のデストラクタ。"
End Sub
End Class
Class CParts2
Public
Sub CParts2(a As Long)
Print "CParts2のコンストラクタ(引数を持つ)。引数の値は、";a
End Sub
Sub ~CParts2()
Print "CParts2のデストラクタ。"
End Sub
End Class
Class CParent
obj1 As CParts1
obj2 As CParts2
Public
Sub CParent()
'引数有りコンストラクタは明示的に呼び出す
obj2.CParts2(10)
Print "親クラスのコンストラクタ"
End Sub
Sub ~CParent()
Print "親クラスのデストラクタ"
End Sub
End Class
Dim obj As CParent
ついでに、この場で発言させていただきますが、関数のオーバーロードに関する仕様がよくわからないので、ヘルプファイルに追加していただきたいです。