ページ 11

関数ポインタ型のメンバ変数

Posted: 2005年6月25日(土) 22:40
by pmh

コード: 全て選択

Class CTest
Public
	pFunc As *Sub()
	
	Sub Func1()
		pFunc = AddressOf(Func2)
		pFunc() 'エラーになる
	End Sub
End Class

Sub Func2()
End Sub

Dim c As CTest
'Dim pFunc2 As *Sub() 'これを入れるとエラーにならない
c.Func1()
上のように、関数ポインタ型のメンバ変数から直接関数を呼び出そうとすると、
「"pFunc"のパラメータ指定が間違っています」
というエラーが出ますが、これはバグでしょうか。
(別の場所で同じ型の変数を宣言していると、なぜかエラーになりません。)

Posted: 2005年6月25日(土) 23:22
by 山本
ご報告ありがとうございます。

関数ポインタをクラスメンバとして定義したときに、それを正常に呼び出せなくなるバグを確認いたしました。次回のバージョンアップにて修正しますので、今しばらくお待ちください。

Posted: 2005年6月30日(木) 01:44
by 高信期
TypeDefした関数ポインタをクラスメンバに定義すると
「文法が間違っています」
とエラーが出ます。

Posted: 2005年6月30日(木) 09:12
by 山本
こちらでも現象を確認できました。次回のバージョンアップで修正します。