ab.com コミュニティ
https://www.activebasic.com/forum/

オーバーライドとオーバーロードのバグ
https://www.activebasic.com/forum/viewtopic.php?t=1296
ページ 11

作成者:  高信期 [ 2006年8月08日(火) 23:51 ]
記事の件名:  オーバーライドとオーバーロードのバグ

抽象クラスを継承したクラスに仮想メソッドと同名のメソッドを持たせると意図しない動作をします。
AB ver 5 CP1で確認しました。
コード:
InterFace IAnimal
  Sub Sing()
End InterFace

Class CDog
  inherits IAnimal
Public
  Sub Sing()          ' override
    Print "わんわん"
  End Sub

  Sub Sing(I As Long) ' overload
    Dim A As Long
    For A = 0 To I - 1
      Print "わん"
    Next A
  End Sub
End Class

Dim Animal As *IAnimal
Animal = new CDog
Animal->Sing()
delete Animal
End
そこで要望なのですが、Abstract修飾子やVirtual修飾子のように
オーバーライドするメソッドにOverride修飾子をつけるようにすると
コードの可読性が高まると思うので導入を検討していただけませんでしょうか?
ご考慮のほどよろしくお願いいたします。

作成者:  イグトランス [ 2006年8月09日(水) 00:53 ]
記事の件名: 

その案には賛成です。
ただしVB .NETに合わせてOverridesの方が良いと思います。

作成者:  山本 [ 2006年8月18日(金) 10:49 ]
記事の件名: 

確かに、オーバーロードが絡んでくるとこのバグを回避しても、仕様上分かり辛いかもしれませんね。

しかし、Override修飾子によるコードの冗長化が気になります。まぁ、Override修飾子が付くような状況では、VirtualもAbstractもつくことはあませんし…。

皆さんはその辺り、どのように思われますでしょうか?因みに、お二人が仰るように、C#ではoverirde修飾子が、VB.NETではOverrides修飾子が導入されていることは事実なようです。

ページ 11 全ての表示時間は UTC+09:00 です
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/