クラス継承およびコンストラクタのテスト

  最上位のクラス



  • lbClass は「lbListBox」「lbString」を継承している
  • lbClass( )は、デフォルトコンストラクタであり、仕様は変更できない
  • lbClass( HWND hwnd )は、拡張のコンストラクタである
  • 実行されるコンストラクタは、呼び出し方に応じて選択される

  •   
    #include <windows.h>
    #include "lbWindow.h"
    #include "lbListbox.h"
    #include "lbString.h"
    
    class lbClass : public lbListbox, public lbString
    {
    public:
    	lbClass( HWND hwnd );
    	lbClass( );
    	virtual ~lbClass();
    
    };
    
      

      
    lbClass::lbClass()
    {
    	MessageBox(NULL,"lbClass","",MB_OK);
    }
    
    lbClass::~lbClass()
    {
    
    }
    
    lbClass::lbClass(HWND hwnd)
    {
    	MessageBox(NULL,"lbClass2","",MB_OK);
    	TargetWindow = hwnd;
    }
    
      



      lbListbox クラス



  • lbListbox は「lbWindow」を継承している
  • lbListbox( )は、デフォルトコンストラクタであり、仕様は変更できない
  • lbLisbox( HWND hwnd )は、拡張のコンストラクタである

  •   
    #include "lbWindow.h"
    
    class lbListbox : public lbWindow  
    {
    public:
    	lbListbox( HWND hwnd );
    	lbListbox();
    	virtual ~lbListbox();
    
    };
    
      

      
    lbListbox::lbListbox()
    {
    	MessageBox(NULL,"lbListbox","",MB_OK);
    }
    
    lbListbox::~lbListbox()
    {
    
    }
    
    lbListbox::lbListbox(HWND hwnd)
    {
    	MessageBox(NULL,"lbListbox2","",MB_OK);
    	TargetWindow = hwnd;
    }
    
      




      lbWindow クラス

  • lbWindow( )は、デフォルトコンストラクタであり、仕様は変更できない
  • lbWindow( HWND hwnd )は、拡張のコンストラクタである

  •   
    #include <windows.h>
    
    class lbWindow  
    {
    public:
    	lbWindow( HWND hwnd );
    	HWND TargetWindow;
    	void CenterWindow( );
    	lbWindow();
    	virtual ~lbWindow();
    
    };
    
      

      
    lbWindow::lbWindow()
    {
    	MessageBox(NULL,"lbWindow","",MB_OK);
    }
    
    lbWindow::lbWindow(HWND hwnd)
    {
    	MessageBox(NULL,"lbWindow2","",MB_OK);
    	TargetWindow = hwnd;
    }
    
    lbWindow::~lbWindow()
    {
    
    }
    
    void lbWindow::CenterWindow( )
    {
    	lbCenterWindow( TargetWindow );
    }
    
      




      どのコンストラクタを通るかテストする

      
    case WM_INITDIALOG:
    	MyClass = new lbClass( hDlg );
    	MyClass->CenterWindow();
    	return TRUE;
    
      

    この記述では、

    「lbWindow」 --> 「lbListbox」 --> 「lbClass2」




      
    case WM_INITDIALOG:
    	MyClass = new lbClass( );
    	MyClass->TargetWindow = hDlg;
    	MyClass->CenterWindow();
    	return TRUE;
    
      

    この記述では、

    「lbWindow」 --> 「lbListbox」 --> 「lbClass」










      infoboard   管理者用   
    このエントリーをはてなブックマークに追加





    フリーフォントWEBサービス
    SQLの窓WEBサービス

    SQLの窓フリーソフト

    素材

    一般WEBツールリンク

    SQLの窓

    フリーソフト

    JSライブラリ