2ゲーム開発のインタビューの概要

いくつかの頻繁に尋ねたインタビューをまとめて

 

1:仮想関数バーチャット

C ++では、仮想関数が多型を達成することで、一言で言えばある例の親型サブタイプへのポインタと、親クラスによってサブクラスのポインタのメンバを呼び出すこと。

各クラスは、仮想関数が含まれ、それに対応する少なくとも1つの仮想関数テーブルを有している、仮想関数に対応する関数ポインタのこのクラスの記憶が実行されます。

 

のステップを構築する過程での仮想関数テーブル:

  1:基底クラスの仮想関数テーブルのコピー

  2:代わりに上書き仮想関数ポインタ

   3:追加の仮想関数ポインタのサブクラス

これらの手順は、コンパイラを完了しています

 

2:

仮想デストラクタ:仮想基底クラスのポインタ削除サブクラスオブジェクトは、サブクラスのサブクラスのヒープメモリを解放する目的のためにデストラクタを呼び出すことができるようにデストラクタ、メモリリーク

ポインタがそのデストラクタサブクラスを呼び出すために、デストラクタデストラクタサブクラス以来、親クラスを削除し、多形形態をスーパークラスときに、親クラスのデストラクタを呼び出します

仮想のボイド楽しい(の形)= 0;それはに呼ばれることはないので、必要が、実装されていない:純粋仮想関数

抽象基底クラス:少なくとも純粋仮想関数を持つクラス、抽象基底クラスは、再分類のオブジェクトを生成することができないが、クラスへのポインタまたは参照を有していてもよく、純粋仮想関数はサブクラスを実装しなければならないか、サブクラスは抽象基底クラスであります

3:

チャットヒープソート、それ

ヒープの並べ替えは、2つのステップに分かれています。

  1:HeapAdjust形成初期ヒープの初期入力データ

    *(K - I)、2 ^(I - 1)層内の要素の数を示し、(K - 複雑さはO(N)であり、比較およびスワップ式は、S = 2 ^(1 I)のように書くことができる含みます - I)は比較的子供をカットする木の数を表します。得られたSにS = 2 ^ kの-k -1、ログ(N)= Kを得る= N -lgn -1でき

  2:オブジェクト交換を通じてヒープソートと再調整

    複雑さはO(nlgn)LOG2 + LOG3 + ... + LOGN≈ログ同じ順序と機能nlognの(N!)があります

シナリオのヒープ:プライオリティキューを実装し、TOP Kを見つけます。

 

おすすめ

転載: www.cnblogs.com/amadios/p/11520662.html