返信する: 汎用質問板



オプション

参照

クラス内にて 引数に void* 型を持つ関数の override ができません
投稿者: びぎな・D 投稿日時: 2011/7/3 1:03
DMD 2.053

void*型を引数に取る関数を、継承したクラスからoverrideしたいと思い、以下のようなコードをコンパイルしようとした所、

module a;
class A
{
    int something(int m, void* n)
    {
        return 0;
    }
}
module b;
class B : A
{
    override int something(int m, void* n) // Error!
    {
        return 1;
    }
}
import b;
void main()
{
    B c = new B;
    c.something(3, cast(void*)0);
}

以下のようなエラーが発生しました。
Error: function b.B.something does not override any function

そもそも、何がしたかったのかというと、
class MyForm : Form
{
    extern (Windows)
    override int WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
    {
        return 0;
    }
}

このような記述方法を取りたかったわけなのですが、一番目の例のように、引数を最後に移動しただけでは解決できませんでした。

解決策や、回避策等ご存じでしたら教えて頂きたいです。

よろしくお願い致します。
メインメニュー

ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録

Menu