Solution46
CAppTestMenu.h
[詳解]
1 //=============================================================================
2 /// @file
3 /// テストアプリケーションメインメニュークラスヘッダファイル
4 ///
5 /// テストアプリケーションメインメニュークラスヘッダファイルです。
6 ///
7 /// $Id: CAppTestMenu.h 245 2019-03-20 15:03:41Z admin $
8 /// $Date: 2019-03-21 00:03:41 +0900 (2019/03/21 (木)) $
9 /// $Author: admin $
10 ///
11 /// @attention なし
12 
13 #pragma once
14 #pragma managed( push, off )
15 
16 //=============================================================================
17 // インクルードファイル
18 #include <AppTestDef.h>
19 #include <CAppTestMenuBase.h>
20 
21 //=============================================================================
22 // テストアプリケーション名前空間
23 namespace AppTest {
24  //=========================================================================
25  /// テストアプリケーションメインメニュークラス
26  ///
27  /// テストアプリケーションメインメニュークラスです。
28  ///
29  /// @attention なし
30  ///
32  //=====================================================================
33  // 構築子と解体子
34  public:
35  //---------------------------------------------------------------------
36  /// コンストラクタ
37  ///
38  /// コンストラクタです。
39  ///
40  /// @param なし
41  /// @return なし
42  /// @attention なし
43  ///
44  explicit CAppTestMenu() noexcept;
45 
46  //---------------------------------------------------------------------
47  /// デストラクタ
48  ///
49  /// デストラクタです。
50  ///
51  /// @param なし
52  /// @return なし
53  /// @attention なし
54  ///
55  virtual ~CAppTestMenu() noexcept {}
56 
57  //=====================================================================
58  // 公開関数
59  public:
60  //---------------------------------------------------------------------
61  /// サブメニュー取得関数
62  ///
63  /// サブメニュー取得関数です。
64  ///
65  /// @param なし
66  /// @return コンソールメニュークラスポインタ
67  /// @attention オーバーライド関数です。
68  ///
69  virtual CAppTestMenuBase* GetSubMenu() const noexcept override;
70 
71  //=====================================================================
72  // 限定公開型定義
73  protected:
74  //---------------------------------------------------------------------
75  /// メニュー項目種別列挙体
76  ///
77  /// メニュー項目種別列挙体です。
78  ///
79  /// @attention なし
80  ///
81  enum class EMenuItem {
82  MenuConsole, ///< コンソールメニュー
83  MenuWindow, ///< ウィンドウメニュー
84  Size ///< 列挙体サイズ
85  };
86 
87  //=====================================================================
88  // 静的限定公開定数
89  protected:
90  static SMenuInfo const s_sMenuInfo; ///< メニュー定義情報構造体
91  static SMenuItemInfo const s_sItemInfo[ static_cast< int >( EMenuItem::Size ) ]; ///< メニュー項目情報配列
92 
93  //=====================================================================
94  // 削除関数
95  private:
96  CAppTestMenu( CAppTestMenu const& ) = delete;
97  CAppTestMenu& operator=( CAppTestMenu const& ) = delete;
98  };
99 }
100 
101 #pragma managed( pop )
テストアプリケーション名前空間
Definition: AppTest.h:25
テストアプリケーション定義ヘッダファイル
テストアプリケーションメニュー基底クラスヘッダファイル
EMenuItem
メニュー項目種別列挙体
Definition: CAppTestMenu.h:81
テストアプリケーションメインメニュークラス
Definition: CAppTestMenu.h:31
CAppTestMenu() noexcept
コンストラクタ
CAppTestMenu & operator=(CAppTestMenu const &)=delete
テストアプリケーションメニュー基底クラス
virtual ~CAppTestMenu() noexcept
デストラクタ
Definition: CAppTestMenu.h:55
static SMenuInfo const s_sMenuInfo
メニュー定義情報構造体
Definition: CAppTestMenu.h:90
virtual CAppTestMenuBase * GetSubMenu() const noexcept override
サブメニュー取得関数
static SMenuItemInfo const s_sItemInfo[static_cast< int >(EMenuItem::Size)]
メニュー項目情報配列
Definition: CAppTestMenu.h:91