質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
C++11

C++11は2011年に容認されたC++のISO標準です。以前のC++03に代わるもので、中枢の言語の変更・修正、標準ライブラリの拡張・改善を加えたものです。

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Q&A

1回答

1213閲覧

ポインタで宣言しているクラスを範囲for文に適応させたい

watto

総合スコア12

C++11

C++11は2011年に容認されたC++のISO標準です。以前のC++03に代わるもので、中枢の言語の変更・修正、標準ライブラリの拡張・改善を加えたものです。

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

0グッド

0クリップ

投稿2019/05/29 06:38

はじめまして。
現在C++のゲーム制作にて範囲for文の勉強中で、是非取り入れたいと考えている者です。
自作クラスを範囲for文に入れたい場合、beginとend関数を作成すればとりあえず良いということまでは理解できました。

ただ、クラスを主に使用してゲーム制作をしており、クラスはポインタでの宣言しかしていません。
範囲for文の中に動的配列のクラスを結果的に適応させることは可能なのでしょうか?ローカル変数などを駆使してなんとかポインタではないクラスからコピーをする、のようにして範囲for文に取り入れようと試みているのですが、やはりどうしてもわかりません。

ぐぐってMainの中に直接クラス宣言しているものしかないので、クラス設計の際にうまくfor文を扱える方法をご教授ください。よろしくお願いします。
知識がまだまだ浅く、初歩的な質問ですみません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yohhoy

2019/06/19 04:01

「クラスはポインタでの宣言しかしていません」の部分をもう少し具体的に説明されたほうが良いです。できれば、直接困ってることを表現する最小限のソースコード例を掲示ください。
guest

回答1

0

こんにちは。

一般にはbegin()、end()が「イテレータ」を返却し、そのイテレータは *単項演算子、!=演算子、++前置演算子を持つことが必須です。これらを適切に実装すれば範囲ベースforで使えます。

ところで、「クラスはポインタでの宣言しかしていません。」を理解できません。
問題が再現する最小限のコードを作成して、質問文に追記することをお勧めします。

投稿2019/05/29 08:01

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問