virtual-functions

    1

    1答えて

    私はクラスオブジェクト内の仮想関数を適切にフック/迂回しようとしていましたが、別の関数を呼び出すという点では成功しましたが、間違ったことをする必要があります関数にキーワードがどのように渡されるかの条件。 同様の方法でD3D関数をフックする方法についての記事を読んで、コンパイラがint Class::method(int)などの関数をint method(Class* this, int)に変換する

    0

    4答えて

    私は誰かが出会ったと思っている非常に奇妙な問題を抱えています。理事会は、仮想関数レター>取得する()は、デストラクタで呼ばれている行でスコープの外に出るとき class Letter { public: Letter() virtual ~Letter() virtual std::string get() const = 0; }; class A : p

    2

    2答えて

    継承とは別の理由として、クラスがその機能を仮想として持つ必要がある場合はどうなりますか? 実行時に、基本クラスが継承され、派生クラスが基本クラス関数をほとんど実装せず、3番目のクラスが、仮想クラスとして定義されている未定義メソッドを呼び出します。 seg faultまたはそれは基本クラス関数を呼び出すか? 派生クラスのベースクラスのすべての関数を定義したくなくても、必要な継承を引き続き実行したい場

    1

    1答えて

    は、私は次のことを持って言う:それは関数のシグネチャに仮想としてマークされていないよう struct Base { virtual void callback() { /* */ } }; struct Derived : public Base { void callback() { /* */ } }; Base* obj = new Derived; s

    8

    4答えて

    私がCPPを知っているので、各クラスには独自のvtableがあります。 しかしthis Wikipediaのリンクは言及: をオブジェクトのディスパッチテーブル は、オブジェクトの 動的にバインドメソッドのアドレスが含まれています。メソッド の呼び出しは、オブジェクトの ディスパッチテーブルから メソッドのアドレスをフェッチすることによって実行されます。ディスパッチテーブルは、同じクラスの に属す

    3

    4答えて

    次の2つのクラスがあります。Aは仮想デストラクタを持つ基本クラスで、Bはデストラクタが 'virtual'修飾子を持たない派生クラスです。私はBから複数のクラスを派生する予定ならば私の質問はBのデストラクタが自動的にvirtualnessを継承するか、私は明示的に「仮想」の前に「〜B(){...}」 class A { public: A() { std::cout << "crea

    8

    1答えて

    ライブラリは仮想関数を持つクラスを提供します。ライブラリに動的にリンクされたバイナリを再コンパイルせずに、このクラスを新しい仮想関数で拡張できますか? これは標準では不可能です。これを可能にするプラットフォームはありますか? 新しい機能がクラス本体の最後に追加された場合には、それは簡単でしょうか?

    11

    3答えて

    仮想というキーワードは、メソッドをオーバーライドするときに何をしますか?私はそれを使用していないとすべてうまく動作します。 この点に関して、すべてのコンパイラが同じように動作しますか? 私はそれを使うべきかどうか?

    2

    4答えて

    ​​ と仮想functions.Problem私はC++で少しプロジェクトをやっていると私は仮想関数に関するいくつかの問題に来ています。 私はいくつかの仮想関数を持つ基本クラスがある: #ifndef COLLISIONSHAPE_H_ #define COLLISIONSHAPE_H_ namespace domino { class CollisionShape : public

    11

    3答えて

    私は、g++によってコンパイルされた私のプログラムにstringsを実行すると、出力に使用するさまざまなクラスの名前が含まれていることがわかりました。 プログラムは-O3でコンパイルされ、-gまたは-pはなく、バイナリを削除するとクラス名が表示されます。 g++がこの情報をバイナリに格納する必要があるのはなぜですか?すべて存在するクラス名は、仮想関数を使用するクラスのように見えるので、これはそれと