WebBrowserクラス

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
fsdfadsf4te

WebBrowserクラス

#1

投稿記事 by fsdfadsf4te » 9年前

WebBrowserクラスを継承したクラスを作成していて、
OnDocumentCompletedメソッドをオーバラーライドしたいのですが、
コンパイルエラーとなります。

コンパイル警告/エラー無しで正しく継承する具体的なコーディング内容を教えて下さい。

■環境
Visual Studio 2012
C++ CLI

■ソース

コード:

public ref class ClassHTTPAuto : WebBrowser{

virtual void OnDocumentCompleted(WebBrowserDocumentCompletedEventArgs e) override = WebBrowser::OnDocumentCompleted{//★
	}

};


■コンパイルエラー内容 ★の箇所
'System::Windows::Forms::WebBrowser::OnDocumentCompleted' : 明示的なオーバーライドの署名に一致するメンバーはありません。
'ClassHTTPAuto::OnDocumentCompleted' : 関数は 'System::Windows::Forms::WebBrowser::OnDocumentCompleted' をオーバーライドしません
'override' : オーバーライド指定子の使用法が不適切です。'ClassHTTPAuto::OnDocumentCompleted' は基本 ref クラス メソッドと一致しません

YuO
記事: 947
登録日時: 14年前
住所: 東京都世田谷区

Re: WebBrowserクラス

#2

投稿記事 by YuO » 9年前

まず,MSDNをちゃんと読みましょう。
WebBrowser.OnDocumentCompleted メソッド (WebBrowserDocumentCompletedEventArgs) (System.Windows.Forms)

コード:

protected:
virtual void OnDocumentCompleted(
	WebBrowserDocumentCompletedEventArgs^ e
)
System::Windows::Forms::WebBrowser::OnDocumentCompletedの引数の型は,
WebBrowserDocumentCompletedEventArgs^
です。
WebBrowserDocumentCompletedEventArgs
ではありません。


次に,overrideの直後に=が来るのは,文法上= 0か= defaultか= deleteです。
= WebBrowser::OnDocumentCompletedが来ることはあり得ませんし,上記のどの場合も,複文が連なることはありません。
# = deleteは実質的に書かないでしょう (基底クラスで= deleteされた関数のみoverrideできる上に,それを= deleteされていない関数でoverrideできない。spec 10.3/para.16)。

閉鎖

“C言語何でも質問掲示板” へ戻る