Interfaceキーワード @AB4

フリートーク
返信する
メッセージ
作成者
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

Interfaceキーワード @AB4

#1 投稿記事 by イグトランス »

http://d.hatena.ne.jp/dai_optimistic/20060523
なんと今のAB4には既にInterfaceがあるそうです。

というわけで早速試してみました。(AB 4.24)

コード: 全て選択

Interface ITest
	Sub Hello()
End Interface

Class TestImpl
	Inherits ITest
Public
	Sub Hello()
		MessageBox(0, "Hello world", "TestImpl", MB_OK)
	End Sub
End Class

Dim ti As TestImpl
Dim pTest As *ITest
pTest = VarPtr(ti)
pTest->Hello()
End
ProjectEditorではInterfaceがキーワードとして色付けされることにも驚かされました。

コンパイルして実行してみると,なるほどHello worldは表示されました。
しかし最後のEndが無いとアクセス違反になってしまいます。
個人的には関数の呼び出し方式が一致していないのではと勘ぐっていますが検証していません。
たかせ
記事: 215
登録日時: 2006年2月05日(日) 17:10
お住まい: 東京都

Re: Interfaceキーワード @AB4

#2 投稿記事 by たかせ »

AB5ではコンパイルエラーとなります。
ちなみにAB5 CP5最新でコンパイルしてみたら

D:\APPLTEST\test.bas(6) : クラス以外の型を継承元として指定することはできません。
コンパイル中...
D:\APPLTEST\test.bas(13) : 内部エラー
D:\APPLTEST\test.bas(15) : [警告] *TestImplから*ITestに強制変換されています。

-----------------------------------------------------
コンパイルは中断されました(エラー:2、警告:1)。

です。
返信する