問題タブ [virtual-functions]

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 に答える
6811 参照

c++ - C ++でクラスの仮想静的メンバーをシミュレートしますか?

とにかくC++で一種の仮想静的メンバーを持つことはありますか?

例えば:

この例は些細なことですが、すべての派生クラスで常に同じになる複雑なデータのベクトルがある場合、基本クラスのメソッドからアクセスする必要がありますか?

すべてのクラスでメンバー _name とそのアクセサー GetName() を再実装する必要があるため、この解決策では満足できません。私の場合、_name の動作と 10 分の 1 の派生クラスに従うメンバーがいくつかあります。

何か案が?

0 投票する
12 に答える
62956 参照

c++ - 仮想関数と vtable はどのように実装されていますか?

C++ の仮想関数については誰もが知っていますが、深いレベルではどのように実装されているのでしょうか?

実行時に vtable を変更したり、直接アクセスしたりできますか?

vtable はすべてのクラスに存在しますか、それとも少なくとも 1 つの仮想関数を持つクラスにのみ存在しますか?

抽象クラスは、少なくとも 1 つのエントリの関数ポインタに対して単に NULL を持っていますか?

単一の仮想関数を使用すると、クラス全体が遅くなりますか? それとも、仮想の関数への呼び出しのみですか? また、仮想関数が実際に上書きされているかどうかにかかわらず、速度は影響を受けますか、それとも仮想である限り効果はありませんか。

0 投票する
8 に答える
108546 参照

c++ - 「純粋仮想関数呼び出し」のクラッシュはどこから発生しますか?

「純粋な仮想関数呼び出し」というエラーでコンピューターがクラッシュするプログラムに気付くことがあります。

抽象クラスからオブジェクトを作成できない場合、これらのプログラムはどのようにコンパイルされるのでしょうか?

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

c++ - 仮想関数を持つクラスが vtables で実装されている場合、仮想関数を持たないクラスはどのように実装されますか?

特に、なんらかの関数ポインタが配置されている必要はありませんか?

0 投票する
16 に答える
15346 参照

c++ - C ++でインターフェイスを操作するとパフォーマンスが低下しますか?

C++ でインターフェイス (抽象基本クラス) を使用すると、実行時のパフォーマンスが低下しますか?

0 投票する
18 に答える
197545 参照

c# - コンストラクターでの仮想メンバー呼び出し

オブジェクト コンストラクターからの仮想メンバーの呼び出しについて、ReSharper から警告が表示されます。

なぜこれがすべきではないのでしょうか?

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

c# - メソッドを仮想化することの危険性は何ですか?

私は RhinoMocks でいくつかのモックを作成してきましたが、モックされたメソッドを仮想化する必要があります。現在仮想としてマークされていない、モックしたいメソッドを含むカスタムフレームワークがあることを除いて、これは問題ありません。

これらのメソッドを仮想化することによる問題は予測できませんが、メソッドを仮想化することの潜在的な危険性にはどのようなものがあるのでしょうか?

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

c++ - メンバー関数を仮想化しない理由はありますか?

C++ でメンバ関数を仮想化しない本当の理由はありますか? もちろん、パフォーマンスに関する議論は常にありますが、仮想関数のオーバーヘッドがかなり低いため、ほとんどの状況ではそれが当てはまらないようです。

一方で、仮想であるべき関数を仮想にするのを忘れて、何度か噛まれたことがあります。そして、それはパフォーマンスよりも大きな議論のようです. メンバー関数をデフォルトで仮想化しない理由はありますか?

0 投票する
12 に答える
31057 参照

c++ - 仮想デストラクタを使用してはいけない場合は?

クラスの仮想デストラクタを宣言しない正当な理由はありますか? 具体的に書くのを避けるべき場合はいつですか?

0 投票する
28 に答える
632544 参照

oop - 抽象メソッドと仮想メソッドの違いは何ですか?

抽象メソッドと仮想メソッドの違いは何ですか? 抽象メソッドまたは仮想メソッドの使用が推奨されるのはどのような場合ですか? どれが最良のアプローチですか?