01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2009-10-30 Fri
■ opEquals はどう書く? [D言語]
オーバーライドするときの引数型はそのクラスではなく、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;//文字列で比較 }
こうか?