1次元配列を2次元的に使う方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Hashimoto

1次元配列を2次元的に使う方法

#1

投稿記事 by Hashimoto » 10年前

コード、

コード:

//(x,y)にアクセス
a[y*width + x]
はなぜ、

コード:

class IntArray2D{
public:
      IntArray2D(int size0,int size1):   //①これはなんなんですか?アクセス指定子?
   mArray(0),    //②これもなんなんですか?
   mSize0(size0),    //③これもなんなんですか?
       mSize1(size1){    //④これもなんなんですか?
           mArray = new int [size0 * size1];
   }
       ~IntArray2D(){
           delete[] mArray;
           mArray = 0;
       }
       int& operator()(int index0,int index1){
           return mArray[index1 * mSize0 + index0];    //⑤これは何を返していますか?
       }
       const int& operator()(int index0,int index1) const {
           return mArray[index1 * mSize0 + index0];     //⑥これは何を返していますか?
       }
private:
       int* mArray;
       const int mSize0;
       const int mSize1;
}; 
こうなるのでしょうか?
①~⑥を教えて下さい。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 1次元配列を2次元的に使う方法

#2

投稿記事 by softya(ソフト屋) » 10年前

質問の内容がC++の文法の話だと思われますが、C++の勉強はされていますでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 1次元配列を2次元的に使う方法

#3

投稿記事 by h2so5 » 10年前

①コンストラクタの仮引数リスト
②〜④初期化リスト
⑤mArray[index1][index0]の値の参照
⑥mArray[index1][index0]の値のconst参照

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 1次元配列を2次元的に使う方法

#4

投稿記事 by softya(ソフト屋) » 10年前

あっ前の質問も解決していないままですね。続きをお願いします。
「荷物を指定の場所に運ぶあのゲームについて • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=13297#p106548
あちらでも書いたのですが、C++の勉強が本当に不十分だと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Hashimoto

Re: 1次元配列を2次元的に使う方法

#5

投稿記事 by Hashimoto » 10年前

C++の勉強はしています。
基礎は理解しているつもりです。
特に①~④がわかりません。(「:」とか何ですか?)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 1次元配列を2次元的に使う方法

#6

投稿記事 by softya(ソフト屋) » 10年前

Hashimoto さんが書きました:C++の勉強はしています。
基礎は理解しているつもりです。
特に①~④がわかりません。(「:」とか何ですか?)
h2so5さんが既に書いてますが、②~④は初期化リストとか初期化子・初期化子リストと呼ばれるものです。
C++の書籍なら出てくるはずなんですけど。

あと⑤、⑥に関して補足するとC++の演算子のオーバーロードの機能を使って関数呼び出しをオーバーロードしています。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Hashimoto

Re: 1次元配列を2次元的に使う方法

#7

投稿記事 by Hashimoto » 10年前

使っているのは「やさしいC++ 第4版」です。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 1次元配列を2次元的に使う方法

#8

投稿記事 by h2so5 » 10年前

「やさしいC++ 第3版」を持っていますが、ざっと見たところ初期化リストについては書かれていないみたいですね。

Hashimoto

Re: 1次元配列を2次元的に使う方法

#9

投稿記事 by Hashimoto » 10年前

今、ロベール(途中・10章まで)もしているんですが、「ロベールのC++入門講座」では(これから)載っていますでしょうか?
載っていれば、ページ数を教えて下さい。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 1次元配列を2次元的に使う方法

#10

投稿記事 by softya(ソフト屋) » 10年前

「やさしいC++」だと網羅されていない文法が多いみたいですね。
「ロベールのC++入門講座」だと初期化子は出てくると思います。検索してみたところ、11章でしょうか?
演算子のオーバーロードも有るようですが、関数呼び出しのオーバーロードについて本は持っていないので検索で確認できませんでした。
まぁ、ネットで検索できるので、そちらで調べても良いと思います。

【補足】 初期化子などで巻末のインデックスで確認できませんか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Hashimoto

Re: 1次元配列を2次元的に使う方法

#11

投稿記事 by Hashimoto » 10年前

11章には載ってませんでした。
巻末のインデックスでも確認できませんでした。
ネットでなんと検索すれば出てきますか(初期化子)?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 1次元配列を2次元的に使う方法

#12

投稿記事 by softya(ソフト屋) » 10年前

> 11章には載ってませんでした。
検索では有るように書いてあったんですけどね。インデックスに載らないレベルなんでしょうか。

ネットでは初期化子で検索すれば出てきますね。
要は、コンストラクタでの初期化をするための書き方です。
クラスの引数付きのインスタンスの初期化など特殊な事はここでしか出来ません。
「コンストラクタ」
http://www.02.246.ne.jp/~torutk/cxx/constructor/
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
usao
記事: 1887
登録日時: 11年前

Re: 1次元配列を2次元的に使う方法

#13

投稿記事 by usao » 10年前

「メンバイニシャライザ」でどうでしょうか.検索ワード.

Hashimoto

Re: 1次元配列を2次元的に使う方法

#14

投稿記事 by Hashimoto » 10年前

すいません。11章に載ってました。

閉鎖

“C言語何でも質問掲示板” へ戻る