タグ

ブックマーク / setuna-kanata.hatenadiary.org (2)

  • shared_ptrの実装1 - while( c++ );

    boostといえばスマートポインタ。 C言語からC++に移るときに最も感動したものがスマートポインタだったと思います。 スコープから抜けるときに誰からも参照されなくなったオブジェクトを自動的にdeleteしてくれるポインタクラスですね。 class Hoge{ ... }; int main() { shared_ptr< int > a( new int( 1 ) ); shared_ptr< Hoge > b( new Hoge() ); cout << *a << endl; b->...(); //適当なメソッド return 0; }//←ここでdeleteされる このように使えるスマートポインタsmart_ptrを実装してみましょう。 とりあえず、最低限必要な機能だけを。 コンストラクタで様々な型のインスタンスを格納する。 ポインタ偽装。operator*、operator->

    shared_ptrの実装1 - while( c++ );
  • C++でjava風リスナを実装する - while( c++ );

    前回いまさらwindowsプログラミング - while( c++ );のプログラムにリスナを追加してみます。 今日の目標 WindowListenerインターフェイスを実装した派生クラスをウィンドウに追加する。 WindowClosing()でSystem::Exit()を呼び出すと、プログラムが終了する。 class HogeWindowListener : public WindowListener { public: //×ボタンを押したときの処理 void WindowClosing( WindowEvent& e ) { //プログラム終了 System::Exit( 0 ); std::cout << "closing" << std::endl; } }; int main() { std::cout << "start" << std::endl; //デフォルトのプロシ

    C++でjava風リスナを実装する - while( c++ );
  • 1