#topicpath ////////////////////////////////////////////////////////////////////////////// * 目次 [#e158d013] #contents(); ////////////////////////////////////////////////////////////////////////////// * 下位ページ [#r5d24f18] #ls2(Lang/C++/); ////////////////////////////////////////////////////////////////////////////// * C++ のキーワード [#u4a91d35] - TR1 - スマートポインタ - [[Boost>http://www.boost.org/]] -- [[Boost C++ Libraries>http://boost.cppll.jp/HEAD/]] -- [[Let's boost>http://www.kmonos.net/alang/boost/]] ////////////////////////////////////////////////////////////////////////////// * プリプロセッサ [#k54e3482] ** #error <error-message> [#u2b926b8] - プリプロセッサ実行時、そこを通ると<error-message>を出力して処理を停止する。 - 書式: #error "error-message" ////////////////////////////////////////////////////////////////////////////// * 初期化 [#xe60f555] - コンストラクタでの初期値代入ではなく、「初期値で生成」する。 class CTest { public: CTest(); ~CTest(); ・・・ private: CInfo m_info; int m_id; }; CTest::CTest() :CInfo( 0 ), // 初期値で生成するため、メンバ変数のコンストラクタをここで呼ぶ m_id( 0 ) { // メンバ変数への初期値代入をここに記述しない } //////////////////////////////////////////////////////////////////////////////// * 継承される可能性のあるclassは、デストラクタを仮想にする [#fc01395d] - これは下記のような問題を回避する為。 ++ 継承した子クラスを作る ++ その子クラスが、親クラスの型で自分のインスタンスのポインタを返すような使い方をされる場合がある。 ++ このとき、その親クラスのポインタに対して delete をしてしまうと、子クラスの部分だけがdeleteされていない、中抜けのおかしな実体になってしまう。 ++ その中抜けなインスタンスに対してアクセスすると、そのときの動作が未定義になってしまう。