[C++]クラスの引数などで、変数名を指定することは可能ですか?
[C++]クラスの引数などで、変数名を指定することは可能ですか?
VC++ 2008 ExpressEditionで作っています、初心者です。
関数を作るときにintやstringなど、引数を決めれるのは知っているんですが
例えば引数に「player_x」と入れればplayer_xという変数がつくれるようにすることは可能ですか?
関数を作るときにintやstringなど、引数を決めれるのは知っているんですが
例えば引数に「player_x」と入れればplayer_xという変数がつくれるようにすることは可能ですか?
Re: [C++]クラスの引数などで、変数名を指定することは可能ですか?
私には意味がよくわかりません。
具体例(コード)を出していただけますか?
具体例(コード)を出していただけますか?
オフトピック
変数をつくる…?コンパイラかインタプリタでも作るのかな…?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: [C++]クラスの引数などで、変数名を指定することは可能ですか?
変数をつくる じゃなくて 変数を宣言する ですね。ごめんなさい。
普通クラスはこんな感じで書いていくと思うんですが、ここでいう string name は引数が「文字列」ですよね。
語彙力のなさもあって説明しにくいんですが、これを「変数名になる文字列」にしたいのです。つまり
こういうことです。勿論これはエラーが出ます。
配列変数を初期化できていないのは一目瞭然なんですが、正確にはもっといろいろとややこしい処理が入ってくる予定です。
普通クラスはこんな感じで書いていくと思うんですが、ここでいう string name は引数が「文字列」ですよね。
語彙力のなさもあって説明しにくいんですが、これを「変数名になる文字列」にしたいのです。つまり
class Character {
public:
Character(string name) {
int name[] = { //name(のとこに渡した引数)というint型の配列変数を作りたい
//(ここでいろいろ処理して、nameの配列変数は全て初期化)
};
}
};
配列変数を初期化できていないのは一目瞭然なんですが、正確にはもっといろいろとややこしい処理が入ってくる予定です。
Re: [C++]クラスの引数などで、変数名を指定することは可能ですか?
マップを自分で作ってみたいなと思いまして、自分なりに考えていたんですが
マップを変更するたびにいちいちマップロードするのも面倒くさいなと思いまして、一番最初に各ステージのマップデータを全て読み込もうと思ったんです。
int Map[Name][縦][横] の三次元配列だと、小さいステージの時は無駄なとこが大きいかなと思い、int MapName[縦][横] の二次元配列をいくつも作ることにして
練習も兼ねて関数作っちゃおうと考えた結果です。
マップを変更するたびにいちいちマップロードするのも面倒くさいなと思いまして、一番最初に各ステージのマップデータを全て読み込もうと思ったんです。
int Map[Name][縦][横] の三次元配列だと、小さいステージの時は無駄なとこが大きいかなと思い、int MapName[縦][横] の二次元配列をいくつも作ることにして
練習も兼ねて関数作っちゃおうと考えた結果です。
Re: [C++]クラスの引数などで、変数名を指定することは可能ですか?
あぁ違うな、マップすべて読みこむのが無駄だと思っているのですね。
だったら必要なマップだけ読めばいいので結局そんなやり方は不要です。
だったら必要なマップだけ読めばいいので結局そんなやり方は不要です。
Re: [C++]クラスの引数などで、変数名を指定することは可能ですか?
マップを
で作って、
にマップリストを格納する、というのはどうでしょうか?
オフトピック
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: [C++]クラスの引数などで、変数名を指定することは可能ですか?
>あぁ違うな、マップすべて読みこむのが無駄だと思っているのですね。
ピンとこないんですが、多分勘違いしてるかと思います。
例えば、 int Map[10][600][600] と言う配列変数を作ったとします。 ステージ0~9,最大縦サイズ0~599,最大横サイズ0~599 ということになります。
縦500,横500のステージ0を作るとしたら、Map[0][0~499][0~499]を使うことになります。
もっと小さくなり、縦10,横10のステージ1を作るとしたら、 Map[1][0~9][0~9]しか使わないわけです。
おおげさな話なんですが、このステージ1の場合 Map[1][10~599][10~599] は使わないわけですから、それは無駄だと考えてるのです。それよりは
int Map_0[500][500]
int Map_1[10][10]
という具合に宣言していった方がいいんじゃないか?という話。
何度も書くのが面倒くさいので、練習も兼ねてクラス作ろうとなったところです。
>...にマップリストを格納する、というのはどうでしょうか?
勉強してきます。
ピンとこないんですが、多分勘違いしてるかと思います。
例えば、 int Map[10][600][600] と言う配列変数を作ったとします。 ステージ0~9,最大縦サイズ0~599,最大横サイズ0~599 ということになります。
縦500,横500のステージ0を作るとしたら、Map[0][0~499][0~499]を使うことになります。
もっと小さくなり、縦10,横10のステージ1を作るとしたら、 Map[1][0~9][0~9]しか使わないわけです。
おおげさな話なんですが、このステージ1の場合 Map[1][10~599][10~599] は使わないわけですから、それは無駄だと考えてるのです。それよりは
int Map_0[500][500]
int Map_1[10][10]
という具合に宣言していった方がいいんじゃないか?という話。
何度も書くのが面倒くさいので、練習も兼ねてクラス作ろうとなったところです。
>...にマップリストを格納する、というのはどうでしょうか?
勉強してきます。
Re: [C++]クラスの引数などで、変数名を指定することは可能ですか?
動的配列難しくてやっとざっくり分かったというレベルなんですが
動的配列を使う=無駄なメモリの使用がなくなる という認識で大丈夫ですよね?
ありがとうございます、勉強しながら使っていこうと思います。
動的配列を使う=無駄なメモリの使用がなくなる という認識で大丈夫ですよね?
ありがとうございます、勉強しながら使っていこうと思います。
Re: [C++]クラスの引数などで、変数名を指定することは可能ですか?
ちょうどの大きさの配列を作って使えば無駄は減りますね。認識としては問題ないでしょう。動的配列を使う=無駄なメモリの使用がなくなる という認識で大丈夫ですよね?
それと、問題が解決した場合は返信画面の送信ボタンのとなりの解決!にチェックを入れて投稿してくださいね。