virtual-inheritance

    3

    1答えて

    C++のネストされた継承に関する質問があります。私は3つのクラス:Base,MiddleおよびTopを持っています。通常Middleから派生するとき、私は公共の継承を使用しますが、私は、しかし、それは公共の使用のためのBaseメソッドを公開する必要があります... はここに私の解決策Middleから私的に継承してきた一つのクラス(Top)ですが、それは大丈夫でしょうか? class Base {

    1

    4答えて

    私は現在、後で実装される抽象的なインターフェイスを持つC++プロジェクトに取り組んでいます。また、実装には実装されていないメソッドも実装されています。 私の問題は、私の実装を使用すると、コンパイラ(MSVC)はインターフェイスメソッドを見ないということです。これを引き起こす原因は何ですか?どうすれば解決できますか? ここにコードがあります。 #include <string> #include

    2

    3答えて

    私は典型的なダイヤモンドの問題のように仮想継承を使用しています: A (virtual)/ \ (virtual) B C \ / D 私はすべてのクラスで「deep_copy_from」という名前のメソッドを実装しています(しかし、それは同様=()代入演算子することができます)。メソッドは、クラス自身の属性をコピーし、そのコピーを上記のクラスに伝

    2

    1答えて

    私のプロジェクトには奇妙な問題があります。私は基底クラス(もう一度他の基底クラスから継承)から継承し、関数をオーバーライドするクラスを持っています。しかし、その関数が呼び出されると、オーバーライドされた関数ではなく、基本関数が呼び出されます。 しかし、中間クラスでその関数をオーバーライドすると呼び出されます。しかし、これは紛らわしいです:TigerControlRoot LIB クラスbScree

    1

    1答えて

    この質問は別の同様の質問から来ています。時には私はこのケースに対処しなければならない。 virtualを宣言された最初の方法は、オブジェクト指向プログラミングに特別な名前を存在する場合、あなたは知っていますが、それは、意図的にないabstractですが、、何もしない、またはまったくコードを持っていませんが、 、おそらく呼ばれる? この例は擬似コードですが、任意のO.O.に適用されます。プログラミン

    18

    3答えて

    リアルタイムアプリケーションで仮想継承を使用することを検討しています。仮想継承を使用すると、仮想関数を呼び出す場合と同様のパフォーマンスへの影響がありますか?問題のオブジェクトは起動時にのみ作成されますが、階層からのすべての関数がvtableを介して送出されるか、または仮想基本クラスからの関数のみが送出されるかどうかが関係します。

    1

    2答えて

    C++では、親関数から子関数を呼び出すことができます。 例を見てみましょう:親クラスは、関数(解析)で一般的なワークフローを定義します。次に、ワークフローは、フローの一部を表すさまざまなメソッドを呼び出します(parseElementA)。これらの関数は、親クラスの一部であるstandart関数が使用されない場合、子クラスによって上書きされます。 私の問題は次のとおりです。子オブジェクトを作成し、

    0

    1答えて

    可能性の重複に: gcc c++ virtual inheritance problem こんにちはすべて、 私はスコットマイヤーズの本で効果的なC++を読んでいます。仮想基底クラスと仮想継承について以下のように述べられています。 仮想基本クラスの初期化を管理するルールは、非仮想ベースのものより複雑で直感的ではありません。仮想ベースを初期化する責任は、階層内の最も派生したクラスによって負われる。新

    1

    1答えて

    私はテストフレームワークを開発中です。多くのテストスイートがあり、それぞれは個々のテストごとにメンバー関数のセットを持つクラスです。 私は、クラス内のすべてのテストを動的に反復する方法を見つけたいと思います。 理想的な設定は次のようになります。 class A : public Test { public: A() { addTest(a); addTest(

    1

    5答えて

    クラスYがクラスXを公的に継承しているとします。クラスZは、Yを非公開で継承し、公開している間にXを継承することは可能ですか? Xがパブリックメソッドx1とx2を定義しているとします。 YはXを継承し、x1を上書きし、方法yを提供する。 C++は外の世界にのみ、それはすなわち、単一のパブリックメソッドx2を持つ、公にXを継承見ながらx1とyのYの実装は、それに私的に利用できるようにYをサブクラス化