問題タブ [virtual]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
840 参照

c++ - 多態的に例外をキャッチする

ここにあるmain()

ここにあるf1()

情報:

B は A から継承します。A::print()仮想であり、B で再実装されます。例外をキャッチする catch は です。これはcatch(A& a_ref)、例外の静的な型 (サブジェクト) が A& であるため、理にかなっていると思います。しかし、なぜB:: print()実行されていないのですか?動的タイプは「失われた」ですか?ラインでのみA::print()実行されますa_ref.print();

誰か説明できますか?

0 投票する
2 に答える
1107 参照

java - 仮想サーバーで Java ヒープ サイズを増やしますか?

ピープス、

私は、Mediatemple の仮想サーバーで開発環境をホストしています。月額 50 ドルです。私たちのアプリケーションは、かなりメモリを集中的に使用する処理を実行し、最後の実行で OutofMemError に遭遇しました。

setenv.sh ファイルで JAVA_OPT または CATALINA_OPT を設定する通常の方法を使用して、明らかに JVM サイズを増やします。Tomcat の起動時に、JVM を作成できません... エラーがスローされます。

私のsetenv.shファイルには次のものがあります:

export CATALINA_OPTS='-Xms512m -Xmx1024m'

どんな助けでも大歓迎です。

0 投票する
3 に答える
3815 参照

directory - Azure Web ロールの仮想ディレクトリ

Azure Web ロールで仮想ディレクトリを作成する方法はありますか。IIS 7 の通常のインスタンスでプログラムによってそれらを作成できることは知っていますが、物理パスを割り当てる必要があります。それは Azure でどのように可能ですか?

0 投票する
9 に答える
21976 参照

c# - C#仮想静的メソッド

静的仮想が不可能なのはなぜですか?C#に依存しているのですか、それともOOの世界では意味がありませんか?

コンセプトにはすでに下線が引かれていることは知っていますが、前の質問に対する簡単な答えは見つかりませんでした。

0 投票する
5 に答える
1484 参照

c++ - 戻り値で仮想関数を使用できますか?

次のコードが期待どおりに機能しないことに少し驚いた。

では、値を返すときに仮想メソッドは機能しませんか?ヒープにリターンクラスを割り当てることに戻す必要がありますか、それともより良い方法がありますか?

(実際には、これを実行して、コンテナークラスから継承するいくつかの異なるクラスが、クラスに応じて異なるイテレータークラスインスタンスを返すようにします...)

0 投票する
1 に答える
799 参照

iis - 仮想 SMTP 経由ですべてのメールを IIS 上の単一の開発ボックスに転送する

Web サーバーの開発環境をセットアップしようとしています。誰に送信されたかに関係なく、サーバーによって中継されるすべての電子メールが特定のメールボックスに送られるようにします。たとえば、サーバー上の一部のアプリケーションが、shopper@yahoo.com に電子メールを送信します。そのメールが devbox@mysite.com に送られるようにします。IIS/仮想 SMTP でそれを行うことは可能ですか? これを行う他の方法はありますか?それが違いを生む場合、私はExchangeサーバーを実行していません。

どんな助けでも大歓迎です。どうもありがとう!

0 投票する
7 に答える
2576 参照

c++ - 仮想メソッドの呼び出しが基本クラスまで確実に伝達されるようにするにはどうすればよいですか?

クラス階層で非常によくある間違いの 1 つは、継承チェーン内のすべてのオーバーライドが何らかの作業を行うために、基本クラスのメソッドを仮想として指定し、呼び出しを基本実装に伝達するのを忘れることです。

シナリオ例

私の質問は次のとおりです。基本実装が常に呼び出しチェーンの最後で呼び出されるようにするための良い方法/パターンはありますか?

これを行うための2つの方法を知っています。

方法 1

メンバー変数をフラグとして使用し、仮想メソッドの基本実装で正しい値に設定し、呼び出し後にその値を確認できます。これには、パブリックな非仮想メソッドをクライアントのインターフェイスとして使用し、仮想メソッドを保護する必要があります (これは実際には良いことです) が、この目的専用のメンバー変数を使用する必要があります (これには、仮想メソッドが const でなければならない場合は変更可能)。

方法 2

もう 1 つの方法は、メンバー変数を不透明な「Cookie」パラメーターに置き換えて、同じことを行うことです。

私の意見では、このアプローチは最初のアプローチよりも劣っていますが、専用のメンバー変数の使用を回避しています。

他にどのような可能性がありますか?

0 投票する
5 に答える
10850 参照

c++ - 仮想関数を使用しない C++ 継承のオーバーヘッド

C++ では、仮想関数を持たない基本クラスの継承に関連するオーバーヘッド (メモリ/CPU) はどれくらいですか? クラスメンバーのコピー&ペーストと同じくらい良いですか?

と比べて

0 投票する
1 に答える
659 参照

interface - 仮想対インターフェースpoco、何が速いですか?

私はこのように設計されたアプリケーションを維持しています:

データカプセルは、多くのゲッターとセッター(プロパティ)を備えた単純なクラスです。DIフレームワークを使用し、一貫してIoCコンテナーを使用してデータカプセルのインスタンスを提供します(幸運なことに!)。

問題は、「変更通知」メカニズムを導入する必要があることです。simplePoco

私にはいくつかの選択肢があります:

  • を導入しIPoco、厄介なコードを変更してsimplePoco、速度を上げるために、またはnotifyingPoco変更通知(選択的に遅い)が必要な場合に使用できるようにしますか?また ...

  • すべてを仮想化し、自分のカスタムnotifyingPocoクラスをsimplePoco(さらに遅く)上にロールしますか?

  • わからないデザインパターン?

これはクライアント/サーバーシステムですが、サーバー部分を変更しているだけなので、可能であれば、 厄介なコードやクライアントコード(シリアライザーとリフレクション、恐ろしい忍者のものがあります...)には触れたくないです誤って何かを壊してしまいます。

インターフェイスを使用すると、JITがgetter / setterへの呼び出しをインライン化できなくなりますか?

simplePocoインスタンスがひどく悪用されていることを考えると、最善の方法は何ですか?

0 投票する
7 に答える
2972 参照

c++ - 仮想機能のコストについて

ループ内で仮想関数を 1000 回呼び出すと、vtable ルックアップのオーバーヘッドが 1000 回発生するのでしょうか、それとも 1 回だけでしょうか?