質問: はじめまして。 現在C++のゲーム制作にて範囲for文の勉強中で、是非取り入れたいと考えている者です。 自作クラスを範囲for文に入れたい場合、beginとend関数を作成すればとりあえず良いということまでは理解できました。 ただ、クラスを主に使用してゲーム制作をしており、クラスはポインタでの宣言しかしていません。 範囲for文の中に動的配列のクラスを結果的に適応させることは可能なのでしょうか?ローカル変数などを駆使してなんとかポインタではないクラスからコピーをする、のようにして範囲for文に取り入れようと試みているのですが、やはりどうしてもわかりません。 ぐぐってMainの中に直接クラス宣言しているものしかないので、クラス設計の際にうまくfor文を扱える方法をご教授ください。よろしくお願いします。 知識がまだまだ浅く、初歩的な質問ですみません。
回答: こんにちは。 一般にはbegin()、end()が「イテレータ」を返却し、そのイテレータは `*`単項演算子、`!=`演算子、`++`前置演算子を持つことが必須です。これらを適切に実装すれば範囲ベースforで使えます。 ところで、「クラスはポインタでの宣言しかしていません。」を理解できません。 問題が再現する最小限のコードを作成して、質問文に追記することをお勧めします。