/ / メモ
2009-10-30

オーバーライドするときの引数型はそのクラスではなく、Object にします。

== と != のオーバーロード

BSTR ラッパを書いていて、 opEquals の書き方に迷った。

bool opEquals(Object o){
    return this.toString == (cast(ComString)o).toString;//文字列で比較
}

o が null の場合に対応

bool opEquals(Object o){
    if(o is null){
        return false;
    }
    return this.toString == (cast(ComString)o).toString;//文字列で比較
}

o が ComString でない場合はどう書く?

alias Object.opEquals opEquals; //ComString 以外との比較の場合
bool opEquals(ComString o){
    if(o is null){
        return false;
    }
    return this.toString == o.toString;//文字列で比較
}

こうか?

トラックバック http://mikanya.dip.jp/memo/2009-10-30-1