ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月29日(金) 04:11

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 3 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 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修飾子をつけるようにすると
コードの可読性が高まると思うので導入を検討していただけませんでしょうか?
ご考慮のほどよろしくお願いいたします。


通報する
ページトップ
   
 記事の件名:
投稿記事Posted: 2006年8月09日(水) 00:53 
オフライン

登録日時: 2005年5月31日(火) 17:59
記事: 899
お住まい: 東京都
その案には賛成です。
ただしVB .NETに合わせてOverridesの方が良いと思います。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年8月18日(金) 10:49 
オフライン
Site Admin

登録日時: 2005年5月30日(月) 15:08
記事: 535
確かに、オーバーロードが絡んでくるとこのバグを回避しても、仕様上分かり辛いかもしれませんね。

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

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


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 3 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[10人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean