- 1 名前:デフォルトの名無しさん [2009/07/19(日) 22:32:32 ]
- スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
過去ログ スレを勃てるまでもないC/C++の質問はここで pc11.2ch.net/test/read.cgi/tech/1167476845/ スレを勃てるまでもないC/C++の質問はここで 2 pc11.2ch.net/test/read.cgi/tech/1178503366/ スレを勃てるまでもないC/C++の質問はここで 3 pc11.2ch.net/test/read.cgi/tech/1187521676/ スレを勃てるまでもないC/C++の質問はここで 4 pc11.2ch.net/test/read.cgi/tech/1221633708/ スレを勃てるまでもないC/C++の質問はここで 5 pc11.2ch.net/test/read.cgi/tech/1230516307/ スレを勃てるまでもないC/C++の質問はここで 6 pc11.2ch.net/test/read.cgi/tech/1231564903/ スレを勃てるまでもないC/C++の質問はここで 7 pc11.2ch.net/test/read.cgi/tech/1232983248/ スレを勃てるまでもないC/C++の質問はここで 8 pc12.2ch.net/test/read.cgi/tech/1235921779/ スレを勃てるまでもないC/C++の質問はここで 9 pc12.2ch.net/test/read.cgi/tech/1240022781/ スレを勃てるまでもないC/C++の質問はここで 10 pc12.2ch.net/test/read.cgi/tech/1242300936/ スレを勃てるまでもないC/C++の質問はここで 11 pc12.2ch.net/test/read.cgi/tech/1245059383/
- 151 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 15:39:11 ]
- >147がLinux使いだったら大笑いだな。まさしく、井蛙の愚だ。
- 152 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 15:44:43 ]
- >>151
敢えて触れない方がいいと思ったけど、とっても気になったので理由を聞かせてもらおうか
- 153 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 16:05:34 ]
- >>151
何で?
- 154 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 16:18:05 ]
- DXライブラリもWinAPIもWindows用だからだろ。JK
- 155 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 16:22:26 ]
- MACかもしれないといってみるテイスト
- 156 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 17:14:57 ]
- それがなんで井蛙の愚につながるの?
誰も井の中の蛙ではなくないか?
- 157 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 17:17:58 ]
- 自身の環境を書かない>147や、Windowsだと決めて掛かる>148-149をからかったんだろうけれど、
顧みすれば>151自身が井の中の蛙になっている罠。
- 158 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 17:22:37 ]
-
井(い)の中の蛙(かわず)大海(たいかい)を知らず 自分の狭い知識や考えにとらわれて、 他の広い世界のあることを知らないで 得々としているさまをいう。 井蛙(せいあ)。 まあ・・・なんかどうでも良くなってきた。
- 159 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 17:24:58 ]
- PC
デバイスA デバイスBでシリアル通信する。 PCからはデバイスA,Bに対して交互に1S間隔で リードコマンドを発行している。 AまたはBがある状態になるとリードコマンドに対して 1バイトの'b'を返すようになる。 デバイスA、Bともには電源立ち上げ時バージョン情報等を PCに送るがその文字列の中に'b'が含まれている。 PC側はリードコマンドに対する応答の'b'だけを判断したい。 デバイスA,Bの電源立ち上げ時の情報は固定ではく、'b'が 含まれているとする。 このような内容だとどのようにコマンドに対する応答の'b' であると判断するのがよいでしょうか?
- 160 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 17:32:02 ]
- PCのリードコマンドを出す前にPCの受信バッファを空にしておくとか?
- 161 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 17:36:31 ]
- >>157
決めてかかったわけじゃないですよ 質問者が使う環境じゃなきゃ質問者は勝手に捨て置くでしょ
- 162 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 18:21:09 ]
- 掛け声みたいだな
「無礼者め手打ちにしてくれる、井蛙(せいあー)!!」
- 163 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 19:43:24 ]
- DXライブラリでゲームを作り始めたのですが、
メインループの書き方がおかしくないか不安です >< #include "GV.h" int WINAPI WinMain( HINSTANCE hI,HINSTANCE hP, LPSTR lpC,int nC ) { ChangeWindowMode(TRUE); if(DxLib_Init() == -1) return -1; Flame* T = new Flame; SetDrawScreen(DX_SCREEN_BACK); while(!(ProcessMessage()) && !(CheckHitKey(KEY_INPUT_ESCAPE)) && (T -> MainLoop()) && !(ScreenFlip()) && !(ClsDrawScreen())); DxLib_End(); return 0; } こんな感じなんですが・・・・
- 164 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 19:48:27 ]
- もしかして: Frame
- 165 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 19:50:52 ]
- うわぁ・・・・
勢いだけで作成中なので英語力のなさが出た結果だとしか・・・ orz(それでもゲームを作りたいんです)
- 166 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 19:54:48 ]
- Yahoo!辞書 - flame
ttp://dic.yahoo.co.jp/dsearch?enc=UTF-8&p=Flame&dtype=1&dname=1na&stype=0&pagenum=1&index=02737600 炎
- 167 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 20:03:24 ]
- 殻っていみのフレームのつもりがフレイムになってたなんて・・・
もしかしてこの質問ってスレチってやつでしょうか?
- 168 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 20:26:56 ]
- ゲームプログラムなら俺に聞け ってスレがあるよ
- 169 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 20:28:48 ]
- ゲ製の方を紹介してやれよ
- 170 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 20:46:04 ]
- ここより雰囲気のいいスレッドが見つけられないオ↓レ↑は、
専ブラで2chを覗く程度の初心者です。
- 171 名前:163 mailto:sage [2009/07/28(火) 21:31:24 ]
- とりあえず
ttp://pc11.2ch.net/test/read.cgi/gamedev/1238429676/ こっち行ってみます。ふんいきこわいけど・・・ スレチすマソでしたー。
- 172 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 23:21:22 ]
- classの全部のメソッドで通常の例外チェック再スローと
STLなどの外部ライブラリが出すかもしれない把握できない例外用のcatch(...){throw UnknownException();} をやってるんですが、やりすぎでしょうか? 例外ってドキュメントが少なくてどうやればいいのかなかなか方針が定まりません
- 173 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 23:51:33 ]
- >>172
どう考えるかによるんじゃね? 例えばSTLの投げる例外ならそのままthrow;で外に再送してあげた方が むしろ親切では?
- 174 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 00:33:01 ]
- カプセル化の事を考えて例外も隠蔽して
指定したもの以外出さないほうがいいかなぁと思ったんですが・・・
- 175 名前:173 mailto:sage [2009/07/29(水) 07:23:08 ]
- >>174
例外クラスは知ってるよね? 例えば C++編(標準ライブラリ) 第27章 例外クラス ttp://www.geocities.jp/ky_webid/cpp/library/027.html std::exceptionクラスを継承したものについては そのまま投げてあげた方が。。 まあ再送しなくても内部で処理できる問題だったらいいけど、 そうでなくて全部例外を飲み込んでUnknownException();にしちゃうのは どうだろう? だれか他の方も意見くださいな。
- 176 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 19:50:12 ]
- shared_ptr<> でnew deleteがほんとに1対1になってるか確かめたいんですけど
グローバル変数を用意してコンストラクタで++、デストラクタで--とすればいいのかなと思うんですが これだと組み込み型のカウントをするのに困ります。どうすれば良いでしょうか?
- 177 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 21:00:36 ]
- >>176
グローバルなoperator newとoperator deleteを定義すればいいと思う。
- 178 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 21:08:40 ]
- >>176何故?何のため?
- 179 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 22:07:31 ]
- コードを重複して書くのがいやなのでtemplateで書いた
けど公開するのは、例えば<int>と<double>だけに限定したい こんなときはどうすればいい? class Hoge { private: template <typename T> class Fuga {}; public: typedef Fuga<int> _IntFuga; typedef Fuga<double> _DoubleFuga; }; typedef Hoge::_IntFuga IntFuga; typedef Hoge::_DoubleFuga DoubleFuga; これよりいい方法あったら頼む!
- 180 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 22:13:07 ]
- 明示的な実体化をした実装を別ファイルに移して、
クライアントコードから見えなくする
- 181 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 22:54:19 ]
- >>180
いまいちわからないんだけど、 hoge.h template < typename Type > class Hoge ; template <> class Hoge< int > ; template <> class Hoge< double > ; hoge.cpp #include "hoge.h" template <> class Hoge< int > {} ; template <> class Hoge< double > {} ; main.cpp #include "hoge.h" int main( void ) { Hoge< int > ihoge ; Hoge< double > dhoge ; /* 〜 */ ; return 0 ; } みたいな感じ・・・? これだと結局重複したコードを書いてるから意味無いような やりかたが間違ってるのかな?
- 182 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 22:58:33 ]
- ていうか↑コンパイルできないですね
もうちょっと勉強してきます
- 183 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 23:01:13 ]
- template関連はごちゃごちゃしてるので記憶が曖昧だが許してくれ。
hoge.h template < typename Type > class Hoge; hoge.cpp template < typename Type > class Hoge { } ; template class Hoge < int > ; template class Hoge < double > ; main.cpp (同じにつき略)
- 184 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 02:13:34 ]
- class hoge{
private: class hoge_sub{ }; std::vector<hoge_sub> a(20); public: }; class内で固定長のclass型の配列を作りたいのですが VC++で error C2059: 構文エラー : '定数' というエラーを吐かれてしまいます このような場合どうすれば良いのでしょうか
- 185 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 02:22:50 ]
- >>184
コンストラクタ初期化子 class hoge{ private: class hoge_sub{ }; std::vector<hoge_sub> a; public: hoge() : a(20) {} };
- 186 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 02:23:01 ]
- vectorはそもそも配列じゃないですし
可変長なので固定長にもなりません。^^ vectorではなく、配列を使ってください。 hoge_sub a[20]; のようにするのです。
- 187 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 02:52:31 ]
- >>185,186
ありがとうございます class型の配列を扱いたいなと思った時に調べましたところ vectorを使う方法が紹介されてましたので、誤って認識していました
- 188 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 07:17:30 ]
- >>187
せめて入門書一冊分くらいは基礎を学んでおいた方がいいとおもうぞ。
- 189 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 22:45:01 ]
- >>188
入門書として適切なものを教えてください。 いや、手元には独習がありますが、ぜんぜん足りないような気がしているのです。
- 190 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 00:53:20 ]
- ハーバートシルト先生に教えてもらっておいてまだ足りないとな?
- 191 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 08:06:09 ]
- 独習C++なんて捨ててaccelerated C++とexceptional C++を読むんだ
- 192 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 10:16:59 ]
- 独習C++半分ぐらい読んで、EffectiveC++、More〜を全部読んで、独習デザインパターンも半分ぐらい読んで、ゲーム作る程度にはそれで十分だった
- 193 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 10:36:12 ]
- あまりの糞さに独習(ryは半分で飽きたということですね…わかります
- 194 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 11:42:47 ]
- マナたん(藁)→ロベールの次に読めるまともな本を教えて下さい
- 195 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 18:27:53 ]
- #include <iostream>
class hoge { private: int x; private: class in_hoge { public: in_hoge() {std::cout << x << std::endl;} }; in_hoge ihoge; public: hoge() : x(100), ihoge() {} }; int main(void) { hoge h; // output: 100 return 0; } コンパイルできないんだけど、どうやれば実装できるかな?
- 196 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 18:36:36 ]
- >>195
in_hogeのコンストラクタにxを渡せばいいんじゃね?
- 197 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 18:51:33 ]
- in_hogeの配列を確保する予定なので、コンストラクタに引数を渡せないのです・・・
- 198 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 18:57:14 ]
- 配列使うかわりにvector使えばいいんじゃね?
- 199 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 21:48:17 ]
- stringのreserve()ってメモリをここでいっぺんに確保して後の操作で動的確保をなるべくしないようにってことでいいの?
resize()との違いがようわからん
- 200 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 21:48:44 ]
- d.hatena.ne.jp/Isoparametric/20080117/1200575103
忍法ししちょびれ。
- 201 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 21:50:28 ]
- >>199
Yes, 高洲クリニック。 reserveは指定したサイズになるように「空き容量」を増やす。 resizeは指定したサイズになるように要素の数を増やすか減らす。 増えた要素は例えば0で埋められるし、減らされた要素は削除される。
- 202 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 18:41:23 ]
- VS C++ 2008 EE で コマンドラインから cl をつかってコンパイルする方法はないものですか?
パスをとおし、バッチファイルvcvers32.bat を実行しただけはうまくいかないようです。
- 203 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 18:45:50 ]
- >>202
それだけでできると思うけど、スタートメニューの中に Visual Studio 2008 コマンドプロンプトとかいうのがあるはず。そっちが確実。
- 204 名前:202 mailto:sage [2009/08/02(日) 18:49:23 ]
- 自己解決です。
msdn.microsoft.com/ja-jp/library/ms235639.aspx に詳細がありました。でも専用のcmd を使わないとダメなようです。cygwin プロンプトから実行というわけにはいかないようです。
- 205 名前:202 mailto:sage [2009/08/02(日) 18:50:11 ]
- >> 203
ありがとうございます。
- 206 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 19:01:09 ]
- Javaスレ、 C++スレ迷いましたが、上のほうの板は荒れ気味なのでここで質問させてください。宜しくお願いします。
g++ (GCC) 4.2.4 です java からC++ で作ったプログラムを使いたいのですが、どのような手順で作成すれば良いのでしょうか、 参考になるHP とかがあれば教えてもらえませんか。
- 207 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 19:01:53 ]
- >>204
Cygwin上で使いたいのなら、自分で環境変数INCLUDEとLIBとPATHを設定すればいい。 C++/CLIを使うならLIBPATHも。 内容はVisual Studioコマンドプロンプトの丸写しでいい。 あるいは、Visual Studioコマンドプロンプト上でCygwin.batを呼んで起動するという手もある。
- 208 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 19:02:37 ]
- >>206
まずはJNIでググるんだ。 よく分からなかったら、どこがどう分からないかを書き添えてもう1度聞きに来るといい。
- 209 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 19:16:43 ]
- >>208 さん、早速の回答ありがとうございます
やはりやり方といいますかjava で呼び出すことができるんですね、よく分かりました Windows でもLinux でもdll を作成してJava Native Interface 機能を用いて呼び出すことができるんですね、どうもありがとうございました。
- 210 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:29:35 ]
- 質問です。
C++でソケット使ったメール送信プログラム組んでます。 ループ内でコネクト・ライト・シャットダウン、クローズを 繰り返して複数メールの送信をしているのですが、 データ量が有る場合に送信されずにクローズしてしまいます。 送信バッファの指定・リンガ設定もしたのですが、変わりませんでした。 ソケット内での解決法やロジックでの解決法があれば 教えて下さい。。
- 211 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:32:05 ]
- ソースを晒さないとなんとも
- 212 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 00:54:59 ]
- >>210
パケットダンプ追えば、何がおきてるかわかるんじゃね?
- 213 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 01:47:48 ]
- 関数の終了コード(errnoとか)は見てる?
- 214 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 16:07:40 ]
- msdnのドキュメントなんだが、関数別に投げる可能性のある例外とか書いてあるページって無いものかな?
知りたかったらいちいちソース読まないといけないんだろうか・・・
- 215 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 16:18:48 ]
- ないよー
ちなみに何の関数について知りたい?
- 216 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 16:36:11 ]
- >>215
今回知りたいのはtr1のmt19937とuniform_intですけど、ほかのも結構頻繁に気になります
- 217 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 18:19:23 ]
- 最近の SDK には boost が含まれてるのか?
- 218 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:18:14 ]
- 0xだろ
- 219 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:48:05 ]
- >>217
0xの先取りTR1 randomのほかshared_ptr, regex, unordered_map/setなんかのライブラリが入っている。 VC++では2008に拡張パックまたはSP1で導入できる。 msdn.microsoft.com/ja-jp/library/bb982198.aspx
- 220 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:52:33 ]
- VC++のSTLのソースってすごい見づらい
- 221 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 17:33:29 ]
- 関数オブジェクトとかよくいうけど関数ポインタでいいじゃんっておもう
なにがすごいのこれ?
- 222 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 17:44:50 ]
- インライン展開できる
- 223 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 19:34:41 ]
- インスタンスが持てる
- 224 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 21:34:17 ]
- operator =ってコピコンみたいに継承元のコピー勝手に呼んでくれる、みたいな思いやりの精神は無いの?
- 225 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 21:47:11 ]
- コピコンにそんな機能あったのか
- 226 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 21:51:21 ]
- ないはず
勝手に呼ばれるのは継承元のデフォコンでは?
- 227 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:12:57 ]
- おまえら普通にコピコンとかデフォコンとかやめてください
- 228 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:13:45 ]
- Base::operator=を最初に呼ばないといかんのかめんどくさいな
- 229 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:15:28 ]
- じゃあシスコンで
- 230 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:18:21 ]
- デスコンとか超強そう
- 231 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:22:29 ]
- デスコン使うとか必死ですねwww
- 232 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 13:07:10 ]
- 例外って難しいです・・・
- 233 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 16:30:13 ]
- さじを投げてるだけじゃん。
誰かが拾って続きやるかもしれないけど、そいつもさじ投げるかもね。
- 234 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 22:01:09 ]
- Enterを押したら処理が進むようにするにはどのようにすれば良いのでしょうか?
char dammy; cin >> dammy; cout >> "Hit"; のようにしてもEnterだけだと入力を受け付けられず、 なにか文字をいれてEnterをおさないと進みません。 よろしくおねがいします。
- 235 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 22:47:39 ]
- int dummy;
dummy = cin.get(); cout << "Hit";
- 236 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 23:00:53 ]
- >>235
ありがとうございます。 ぶじかいけつできました。!!
- 237 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 01:24:15 ]
- 20個ものclassのインスタンスがあるのですが、
rand()%20 +1でせいせいした1~20までの数に合わせて それぞれのインスタンスにメソッドを適用したいです。 classのインスタンスを引数にわたしてメソッドを実行する関数を書いたので classの配列をつかってその関数にclassを渡したいです。Web検索で vectorを使うとかの説明は1つだけ出てきたのですが詳しくわからないのでよろしくおねがいします。 具体的にいうと class Hoge { public: Hoge() {} void fuga() {} }; void foo(Hoge h) { h.fuga(); } int main(void) { Hoge a; Hoge b; Hoge c; hit = rand()%3 + 1; class_array = なんらかのほうほうでa,b,cの配列 foo(class_array[hit]); return 0; } と言う風にかけないかと思っています。 よろしくおねがいします。
- 238 名前:デフォルトの名無しさん [2009/08/06(木) 01:29:08 ]
- Hoge a;
Hoge b; Hoge c; hit = rand()%3 + 1; じゃなくて Hoge class_array[3]; hit = rand()%3; じゃだめ? まあfooは参照かアドレスで渡すべきというのは置いておいて。
- 239 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 01:31:37 ]
- >>238
すみません、大事な部分を忘れていました。 a,b,cのコンストラクタにはいくつかそれぞれ別の引数を渡したいのですが、 それもふまえた上でよろしくおねがいします。(上のコードのclass Hogeのコンストラクタは引数をとる物に変更してください)
- 240 名前:デフォルトの名無しさん [2009/08/06(木) 01:36:19 ]
- こら。
Hoge *class_array[3]; にして、それぞれ new すれば良いでしょ。 >それもふまえた上でよろしくおねがいします。 >(上のコードのclass Hogeのコンストラクタは引数をとる物に変更してください) どんだけ上目線なの。
- 241 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 01:38:35 ]
- >>240
なるほど、なんとなくわかってきました。 ありがとう御座います。 >どんだけ上目線なの。 すいませんでした、いま自分の望んでいる動作を日本語にするのが難しくて 変な日本語になっていました。すいません。
- 242 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 01:40:17 ]
- 実際はインスタンスが100個以上あるので、できればもう書いて生成してしまったインスタンスを
けしてそれぞれnewし直す事なく修正したかったのですが、無理なようですね。 とりあえずがんばろうと思います。
- 243 名前:デフォルトの名無しさん [2009/08/06(木) 01:43:27 ]
- ポインタ知ってる?
- 244 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 01:49:11 ]
- どうやったらコンテナじゃないインスタンス100個とか糞みたいなコード書けるんだ
- 245 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 01:57:56 ]
- >>244
すいません、まだC++についてよくわかっていないのです.. おなじ種族に属する物で名前やジャンルが違うものを 100個の内50個はデフォルトでひつようで残りの50個は条件の違いによって 生成時に与えられるパラメータが違うという妙な仕様になっていて しかも100個どれが使用されるかはわからないという変なプログラムなんですよ。 まあ簡単にいうと動物園みたいなものです。
- 246 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 02:03:37 ]
- 配列にするのが嫌ならswitchでも使えばいいでしょ。
Hoge& selectHitTarget(Hoge& a, Hoge& b, Hoge& c) { switch(rand() % 3) { case 0: return a; case 1: return b; case 2: return c; } } int main(void) { Hoge a; Hoge b; Hoge c; Hoge& hit = selectHitTarget(a, b, c); foo(hit); return 0; }
- 247 名前:デフォルトの名無しさん [2009/08/06(木) 02:08:50 ]
- 246は何の解決にもなってないので却下として、
生成時に与えられるパラメータでインスタンスの生成方法が変わるものを 100個分書いた時点でなんかもう…。ま、書き直しを勧めます。 普通はパラメータは外部配列にしておくか、アルゴリズムで与えて、 オブジェクトが100個だろうが100000個だろうがループで回して配列に 入れながら new するでしょうね。 #スケーラビリティと言います。 この後はアドレス渡しではまって、継承ではまって仮想関数ではまって… となるのね。出題者は「わん」とか「にゃー」とか呼び分けたいだけなのに、 その手前で悩んでるパターンですかね。。。
- 248 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 02:25:46 ]
- static変数にパラメーターリストを入れて
デフォルトコンストラクタでそれを参照しながら初期化するとか でもなんか気持ち悪いな・・・
- 249 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 02:30:53 ]
- オレだったらコンストラクタをテンプレート関数にして個々のメソッドの中にconstメンバを基にSTATIC_ASSERT吐く様にする
- 250 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 02:32:32 ]
- モンスターのパラメータ
ランダムエンカウント時のモンスター決定 かと思った
- 251 名前:デフォルトの名無しさん [2009/08/06(木) 11:49:18 ]
- ttp://racanhack.sourceforge.jp/rhdoc/codepre.html
このページのコードを実行したいのですがGlibはどうやって導入すればいいんでしょうか WindowsXPでVisual Studio 2008 Expressを使ってます
|

|