dynamic-cast

    3

    2答えて

    可能性の重複: Regular cast vs. static_cast vs. dynamic_cast 私はstatic_castをこの質問でどのように動作するかを学びました。 Why is it important to use static_cast instead of reinterpret_cast here? static_castがクラスの継承関係を認識している場合、なぜdyna

    1

    2答えて

    キャストにポインタが含まれる場合はNULLと評価されますが、キャストに参照型が含まれている場合はbad_cast例外がスローされます。 なぜこの動作の違いがありますか? おかげ

    2

    3答えて

    巨大なコードベースにバグを修正している間に、参照の動的タイプが元のDerivedタイプからBaseタイプに変わったという奇妙な状況が観察されています。私はこの問題を説明するために、最小限のコードを提供しています: ​​ funcptrは、関数ポインタ(void (*)(SomeClass&))です。 funcptrは非常に多くの機能を指すことができ、独自のコールフローを持っているため、デバッグは困

    3

    4答えて

    は、以下の抽象クラスを考えてみましょう: class Abstract { public: // ... virtual bool operator==(const Abstract& rhs) const = 0; // ... }; は、今私は、この抽象クラスから複数の派生クラスを作成していたとします。ただし、それぞれが独自の型と比較するときには異なる

    0

    2答えて

    Foo* foo = &dynamic_cast<Foo&>(*ptrFoobase);を使用する理由はありますか?キャストが間違っているとbad_castをスローし、ポインタが0になっているかどうかをチェックします。

    3

    5答えて

    私はクラスデザインを改善し、型チェックを避けるためにリファクタリングに関するアドバイスを探しています。 私はコマンドデザインパターンを使用してメニューツリーを構築しています。メニュー内のアイテムは、様々なタイプ(例えば、「保存」のような即時アクション、その状態に応じてチェック/アイコンで表示されるトグルオン/オフプロパティ[イタリック体]など)であってもよい。重大なことに、サブメニューもあります。

    1

    3答えて

    私は基本的な機能を提供し、他の派生システムのインターフェイスとして機能するはずのC++でフレームワークを設計しています。 #include <stdio.h> class Module { public: virtual void print() { printf("Inside print of Module\n"); } }; cl

    3

    1答えて

    新しいC++プログラマーがここにあります。 私は、次のマップ定義を持っている: typedef std::map<std::string, Option> MapType; MapType my_map オプションは、私が作成した独自のクラスです。私は実際にOptionクラスを自分のマップに追加することはありません。代わりに、私はいつもOptionから継承するクラスを追加しています。たとえば

    7

    1答えて

    ちょっと前に、C++のdynamic_castの非常にきれいなパフォーマンスのアップグレードに関する非常に興味深い論文を見つけました:http://www2.research.att.com/~bs/fast_dynamic_casting.pdf 基本的には、C++でdynamic_castを従来の継承ツリーの研究よりも高速にしています。論文に記載されているように、この方法は、高速で一定時間の動

    15

    1答えて

    私が読んだことによると、間違った実行時のdynamic_castを実行すると、bad_cast例外がスローされるか、ゼロが返されます。 ポインタをキャストしている場合、ゼロが返されるとはいいですか? すなわち: class Base { virtual void a(){} }; class Derived: public Base {}; int main() { Base *b