クラス内にて 引数に void* 型を持つ関数の override ができません

投稿ツリー


このトピックの投稿一覧へ

質問 クラス内にて 引数に void* 型を持つ関数の override ができません

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 | 投稿日時 2011/7/3 1:03
びぎな・D 
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;
    }
}

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

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

よろしくお願い致します。
投票数:25 平均点:3.60
返信する

この投稿に返信する

題名
ゲスト名
投稿本文

  条件検索へ


メインメニュー

ログイン

ユーザー名:


パスワード:





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

Menu