virtual-functions

    6

    3答えて

    私はRhinoMockをいくつか試してきましたが、模倣されたメソッドを仮想化する必要があります。これは、現在私が仮想としてマークされていない模擬したいメソッドを含むカスタムフレームワークを持っていることを除いて、問題ありません。 私はこれらのメソッドを仮想化することで何か問題を予測することはできませんが、私が見なければならないメソッドを仮想化する潜在的な危険性は何ですか?

    7

    3答えて

    The CRTPは、動的多型に関するこの質問に示唆されています。しかし、このパターンは静的多型にのみ有用であると言われています。私が見ているデザインは、仮想関数呼び出しによってスピードワイドに妨げられているようです。hinted at here. 2.5倍のスピードアップも素晴らしいでしょう。 問題のクラスは単純で完全にインラインでコーディングできますが、実行時まではクラスが使用されません。さらに

    21

    5答えて

    仮想代入演算子を実装して遊んでいるうちに、面白い振る舞いで終了しました。 g ++ 4.1,4.3およびVS 2005は同じ動作を共有しているため、コンパイラの不具合ではありません。 基本的に、仮想演算子=は、実際に実行されているコードに関して他の仮想関数とは異なる動作をします。 struct Base { virtual Base& f(Base const &) { st

    10

    5答えて

    C++に仮想静的メンバーを並べ替えてもらえますか?例えば : class BaseClass { public: BaseClass(const string& name) : _name(name) {} string GetName() const { return _name; } virtual void UseClass() = 0;

    2

    4答えて

    Cyclomatic Complexityは、与えられた関数がどれほど難しいか、またはバグを含む可能性がどれくらいあるかについての大まかな基準を提供します。私が読んだ実装では、通常、すべての基本的な制御フロー構造(if、case、while、forなど)が関数の複雑さを1増加させます。循環的複雑さは、仮想関数が呼び出す "プログラムのソースコードを通る線形に独立したパスの数"は、実行時にどの実装が

    8

    4答えて

    私は図書館に次のコードを見つけました: class Bar { public: bool foo(int i) { return foo_(i); } private: virtual bool foo_(int i) = 0; }; は、今私は思ったんだけど:なぜ、あなたはこの間接を使うのでしょうか?上記の単純な選択肢よりも良いだろう、なぜ任意の

    4

    4答えて

    class A { public: void operator=(const B &in); private: int a; }; class B { private: int c; } 申し訳ありません。エラーが発生しました。代入演算子は有効ですか?またはこれを達成するための方法がありますか? [AとBクラスの間には関係がありません。] void A::operator