メンバ関数のインライン化機能

11. メンバ関数の特性の以下の説明、 ______が間違っています。  

  1. メンバ関数はインラインでなければならない   B.メンバ関数をオーバーロードできます    

C.メンバ関数は、D.デフォルトのパラメータ値は、静的メンバ関数であってもよい設けられていてもよい    [A]

[D] in vivoでのクラスのメンバ関数で定義されるように、インビトロでのクラスでも定義することができ、それは必ずしもメンバー関数のインライン関数ではなく、オーバーロードされたメンバ関数は、スタティックメンバ関数のパラメータのデフォルト値を設定することができます。

 

インライン関数は、ワードローブを呼び出すとき、呼処理として彼を考えていない機能を意味するが、インライン関数は、コードの一部に相当するように展開形で彼の機能に直接この関数を呼び出すコードは、理解することができます。コールする必要はありません、効率が高いではありません。メンバ関数は、それがクラスに属し、クラスで宣言された関数です。もちろん、クラスで定義されたメンバ関数は自動的にインライン関数に変更された場合。

 

メンバ関数は、オブジェクトの一部であり、静的関数はクラスの一部である。体によって定義された関数のクラスは、それがデフォルトコンパイラになります場合はインライン関数の外側に関数の定義、およびステートメントで、時間の関数である場合には、キーワードインラインで、関数となるインライン関数、そうでなければメンバ関数。

 

インライン関数は、Cマクロの内部と同様であるが、多くの場合、マクロ定義の追加などのいくつかのマクロ不安を(有する)+ bはコールRESが=追加した場合、マクロ定義を呼び出すときは(任意の決意することなく、直接であります)* C;コードはRES = A + B * C得られ、所望の結果ではありません。 
   インライン関数は、安全なマクロ定義として理解することができ、彼は本当の関数であるが、高速で、スタックをプッシュしていない、とマクロ定義より安全な、短くて比較的高い周波数の機能を使用するには、インラインインライン関数を書くことができます。 
   インライン機能コンパイル時に、なります。このインライン関数のコードは、呼び出し元の関数の場所に直接コンパイルされます。ジャンプ、プッシュおよびその他のデータ関数呼び出し演算子を減らします。そう比較的高いことが行の数、インライン関数の効率に比べ呼び出します。しかし、このために、プログラムファイルの最後の世代はわずかに大きくなるように。
 
1。インラインCPUは、システムのオーバーヘッドを減少させ、全体的なプロセスの速度を増加させるが、大きなインライン関数は、逆の効果を有する場合、それは一般的に比較的小さなインライン関数が使用されてもよいです。
2。他方は、この機能は自動的にインライン関数に変換するクラスで定義された関数の内部コードであるが、インライン化するのに必要ではない。そこに二つの方法は、インライン関数宣言は、メソッドがインラインファンクションキーの前に使用され、あります機能の手前インチ
3。インラインは同じレジスタ指定子として、コンパイラへの要求です。次のような状況では、この要求に従うようにコンパイラを防ぐことができます。関数は、サイクル、スイッチや後藤声明、再帰関数、静的を含む関数に含まれている場合。

おすすめ

転載: www.cnblogs.com/yan-hui/p/11407252.html