解析の概念:些細なタイプ、標準レイアウト、POD

著者:Vitaly Buturlin





コンテンツ:





  • 1.ささいなクラス





  • 2.標準レイアウト





  • 3.POD





  • 4.オプション





ささいなクラス

些細なクラス (自明なクラスは、) -特別なメンバ関数は、コンパイラによって提供されたクラスまたは構造体である(明らかにない実装が存在しない)、または明示的にデフォルトとして定義。特別なメンバー関数はデフォルトで(明示的または暗黙的に)取るに足らないものとして宣言されているため、このようなクラス制御コードはあり ません





さらに、追加の要件があり、些細なクラスには次のものがあってはなりません。





  • 仮想機能





  • 重要な基本クラス





  • 重要なデータタイプ





「些細な」という言葉は、次の存在を意味します。





  • 些細な特別メンバー関数(msdn





  • メンバーPOD(以下を参照)





些細なクラスは、memcpyなどの関数を使用して完全な精度で安全にコピーできます。





メンバー関数の些細なこと(制御コードの欠如)は、次のことを意味します。





  • 初期化なしのオブジェクトのメモリ割り当て





  • オブジェクトのバイトコピー





  • クリーニングせずにメモリを解放する





標準レイアウト

標準構造 (標準レイアウト)-アクセシビリティC ++を含む構造(構造):





  • 仮想関数と仮想基本クラス





  • いくつかのレベルのアクセス(プライベート、保護)





  • 参照タイプの非静的メンバー





標準構造:





  • 非標準のメンバーはありません





  • 非標準構造以外の基本クラスはありません





  • 非静的データメンバーを持つ基本クラスが複数ありません





  • 非静的メンバーを宣言するための2つの場所がありません(たとえば、基本クラスとそれ自体)





  • 3つ以上の基本(または間接)クラスがありません





標準構造には 予測可能なメモリ構造があります。これは、コンパイラが独自の裁量で構造化できるデータが含まれていないためです(たとえば、パブリック/プライベート/保護の場合)-書き込みと メモリへの保存の両方









著者:Vitaly Buturlin





ソース








All Articles