私は C++ と OOP を独学しようとしている新しいプログラマーです。現在、私は複数の状態を持つプロジェクトに取り組んでおり、より大きなプログラミング タスク/チャレンジへの最初の試みです。現在、単純なメニュー状態クラスに取り組もうとしていますが、やりたいことを実行するためにどのように設計すればよいかわかりません。具体的には、私は初心者のプログラマーであり、どのデータ型またはテンプレートを使用すればよいかわかりません。
作成したいメニュー画面のタイプの簡単な説明は次のとおりです。
複数の「メニュー要素」がリストされた単純なメニュー画面を作成しようとしています。各「メニュー要素」には、文字列 (要素または項目の名前を表示するために使用される) と機能 (状態、画面の変更、タスクの実行など) が含まれます。- 私が持ちたいメニューシステムのもう一つの「機能」は、選択をラップアラウンドする機能です。たとえば、メニューに 3 つの項目がある場合、ユーザーが上下に押して現在選択されている要素を切り替えられるようにしたいのですが、ユーザーが最後の要素 (#3) にいてもう一度押すと、元に戻ります。要素 #1 の周り。(およびその逆..)
さて、これには「MenuElement」と呼ばれる新しいクラスと、ユーザーが特定の要素を切り替えて選択できるようにする「MenuState」と呼ばれるクラスを作成する必要があると思います。
独学の新しい C++ プログラマーとして、私はいくつかのより高度なコンテナーの経験が限られており、単純な C スタイルの配列に精通しています。ベクトルの経験が少しあり、リンクされたリスト、マップ、およびツリーについて少し知っていますが、この状況でどのコンテナー タイプを使用すればよいかわかりません。以前、ポインターを使用して循環リンク リストを作成する例を見たことがありますが、その例は C で書かれており、少しぎこちないように思えました。私の問題に最適な特定の種類のコンテンツはありますか? それとも、考えすぎて、1 つを選択して実行する必要がありますか?
最終的には、一連の条件付きステートメントを含む MenuElements の配列を使用して、このシステムを稼働させることができると思います。ただし、プログラミングと設計を改善する方法を実際に学ぶことに非常に興味があります。これにより、コードがより高速に実行されるようになるだけでなく、コードがクリーンで論理的に構築されるようになります。