- 1 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 10:31:46 ]
- スレを勃てるまでもない低俗な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/ スレを勃てるまでもないC/C++の質問はここで 12 pc12.2ch.net/test/read.cgi/tech/1248010352/ スレを勃てるまでもないC/C++の質問はここで 13 pc12.2ch.net/test/read.cgi/tech/1260842197/ スレを勃てるまでもないC/C++の質問はここで 14 pc12.2ch.net/test/read.cgi/tech/1269273471/
- 2 名前:デフォルトの名無しさん [2010/05/09(日) 10:34:37 ]
- おまいら
janeの隠し機能を発見したぞ! 1.まず半角入力に切り替える 2.Wキーを押しっぱなしにする 3.Wキを押しっぱなしにしながらsageのチェックするところをおもむろにクリック
- 3 名前:デフォルトの名無しさん [2010/05/09(日) 14:15:16 ]
- 何は vector、map 、iterator
- 4 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 16:10:46 ]
- 複数の情報ひとまとめに定義する方法ってありませんか?
現状、 enum TEX_ID{ TEX_A, TEX_B, TEX_C, TEX_NUM } char* TexTbl[] = { ("tex/a.bmp"), ("tex/b.bmp"), ("tex/c.bmp"), } と、別々に定義して、 TexTbl[TEX_B] のように呼び出していますが、これだと2つの順番を意識的にあわせる必要があります。 そうではなく、 enum TEX_ID{ (TEX_A, ("tex/a.bmp")), (TEX_B, ("tex/b.bmp")), (TEX_C, ("tex/c.bmp")), TEX_NUM } のようにひとまとめにしたいのですが・・・(上のような記述はありえませんが)
- 5 名前:4 mailto:sage [2010/05/09(日) 16:11:54 ]
- ちなみにこのTEX_IDは別のファイルからも読み込める前提でおねがいします
- 6 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 16:17:13 ]
- mapじゃダメなの?
- 7 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 16:20:05 ]
- 揃えるだけなら初期化を諦めて代入すればいい。
ただ、色々犠牲になるけど。 C99なら要素番号を指定して初期化とかできるするけど これも同じく犠牲になるものはある。 両方に共通して言える犠牲は、全要素が初期化されてるか判断が面倒という点。 普通に配列を初期化すれば、要素数とTEX_NUMを比較するassertを書けば済む。 mapにするとこれは解決できるが、今度はコストが気になると思われる。 一旦mapで初期化して、配列に移す、とまでやれば大丈夫だろうが・・・。
- 8 名前:4 mailto:sage [2010/05/09(日) 16:27:35 ]
- 限りなくシンプルに登録、利用ができることを目的としています。
mapだと、 enum TEX_ID{ TEX_A, TEX_B, TEX_NUM } map<int, string> names; names.insert( map<int, string>::value_type( TEX_A, "a.bmp" ) ); names.insert( map<int, string>::value_type( TEX_B, "b.bmp" ) ); こんな感じになってしまい、利用する側は登録するときに enumと、insert部分の2箇所を記述する必要がでてきてしまいます。 TEX_AやTEX_Bのかわりに0や1を使ってdefineを取り除くと、 今度は利用するときにわかりにくいです。
- 9 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 16:28:37 ]
- コードを生成するといいよ
- 10 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 16:31:50 ]
- そういうクラスを作ればいいんじゃないの?
- 11 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 16:36:23 ]
- コードの自動生成くらいしか解決法はないと思われ
- 12 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 16:37:56 ]
- usingとかtypedef使えばいいじゃない
- 13 名前:4 mailto:sage [2010/05/09(日) 16:59:49 ]
- >>9〜>>12
それらをどう使って、どういう形になるのかが想像できません(;´д` struct MEDIA_INFO{ int id; char* filename; }; enum TEX_ID{ MEDIA_INFO(TEX_A, "a.bmp") MEDIA_INFO(TEX_B, "b.bmp") MEDIA_INFO(TEX_NUM, "") }; TEX_ID aaa; aaa[TEX_A].filename うーん
- 14 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 17:43:36 ]
- data.h:
MEDIA_INFO(TEX_A, "a.bmp") MEDIA_INFO(TEX_B, "b.bmp") MEDIA_INFO(TEX_NUM, "") media.h: enum TEX_ID{ #define MEDIA_INFO(a,b) a, #include "data.h" #undef MEDIA_INFO }; media.c: const char* TexTbl[] = { #define MEDIA_INFO(a,b) b, #include "data.h" #undef MEDIA_INFO };
- 15 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 17:47:19 ]
- なるほど
それいいな
- 16 名前:4 mailto:sage [2010/05/09(日) 18:26:07 ]
- >>14
目から鱗。 多謝
- 17 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 23:34:07 ]
- ソートに最適なアルゴリズムってどうやって選べばいいんでしょうか
Visual C++で開発していますが、JavaのLinkedListのような仕組みを使ったリストに ソートをかけたいです。 一度コピーでもしない限り、インデックス指定でリストにアクセス出来ないので、 使用できるアルゴリズムが限られそうです。データ型はfloatです。
- 18 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 23:42:16 ]
- std::sortでええやん
- 19 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 06:59:52 ]
- >>18
std::listにstd::sort()は使えない。 まぁ、std::listのメンバにsort()があるけど。 >>17 つーことで、先ずはstd::list<type> fooしてfoo.sort()だね。
- 20 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 10:03:19 ]
- プログラムというより算数の疑問なんですが…いまフィボナッチ数列作れってプログラム作ってて参考書どおりに書いたんですけど
int fibonacci(int n) { if (n == 1 || n == 2) return 1; else return fibonacci(n - 1) + fibonacci(n - 2); } の結果が 1=1 2=1 3=2 4=3 5=5 ってなるのが分からんのですけど、n=3の時は3−1+3−2ですよね? nが−1で減るとして3−1+2−2とも考えたんですけどそれだと4の答えは4になるんじゃないでしょうか?
- 21 名前:デフォルトの名無しさん [2010/05/10(月) 10:14:09 ]
- n = 3のときは
fibonacci(3 - 1) + fibonacci(3 - 2) つまり fibonacci(2) + fibonacci(1) だから n=2とn=1 のときの結果を足し合わせるの それはどっちも1だろ?
- 22 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 10:16:29 ]
- まず関数の概念を理解すべきだな
- 23 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 10:36:50 ]
- >>21
速レス感謝です、if (n == 1 || n == 2) のリターン1が評価されてn(3)は1+1は2ということでしょうか? そうすると4は3+1?だとやはり4になってしまうような?できれば4の場合も教えていただけないでしょうか
- 24 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 10:41:00 ]
- 再帰って知ってるか?
- 25 名前:デフォルトの名無しさん [2010/05/10(月) 10:54:57 ]
- >>21
n = 4のときは fibonacci(4 - 1) + fibonacci(4 - 2) で fibonacci(3) + fibonacci(2) だから n=3のときの結果とn=2の時の結果を足すんだよ!
- 26 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 11:27:41 ]
- >>25
fibonacci(2)が1?で3+1? そうすっと4=3てのは… >>24 本の少し後ろの頁みたら解説してました if (n == 0) return 1; else return n* kaijo(n - 1); で4を入れると4*(3*(2*(1*1)))で24となるてやつでしょうか これを>>20に当てはめろということでしょうか
- 27 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 11:38:27 ]
- このスレのアホな質問読んでると、自分が天才のように思えてくるわw
- 28 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 11:40:58 ]
- >>20 の出力を
fibonacci(1) == 1 fibonacci(2) == 1 fibonacci(3) == 2 fibonacci(4) == 3 fibonacci(5) == 5 と書けばわかるか? fibonacci(4) == fibonacci(3) + fibonacci(2) == 2 + 1 == 3
- 29 名前:( ● ´ ー ` ● ) mailto:sage [2010/05/10(月) 11:51:20 ]
-
- 30 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 11:58:30 ]
- >>28
4の一つ前のn(3)が=2だったからfibonacci(3)が2になるということでしょうか? 例えばfibonacci(6)だとfibonacci(5)+fibonacci(4)で5+3でfibonacci(6)=8
- 31 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 12:17:12 ]
- n( )て何の記号だ?
- 32 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 12:23:05 ]
- 小学生向けのフィボナッチ数列の説明見つけたから読んでみたら?
www.suguru.jp/Fibonacci/
- 33 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 12:50:50 ]
- >>32
よくわかりました、正直フィボナッチの意味がわかってませんでした
- 34 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 12:56:29 ]
- ペラン数ぱねぇw
- 35 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 13:14:10 ]
- CreateFileでtxtファイルを作成してUnicodeの文字を書き込みましたが、作成したtxtでは文字化けして保存されました。
そのtxtの文字コードを メモ帳から文字コードをUnicodeに変更して保存しなおすと、Unicodeの文字を書き込むと表示できました。 手動ではなくプログラム中でtxtファイルの保存形式を指定したいのですがどうすれば良いのでしょうか?
- 36 名前:デフォルトの名無しさん [2010/05/10(月) 13:16:50 ]
- >>35
文字コード変換すれば?
- 37 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 13:22:47 ]
- BOMは書き込んでるか?
- 38 名前:35 mailto:sage [2010/05/10(月) 13:43:12 ]
- >>36
特殊文字を記録したいのでUnicodeで保存しようと思ってます。 >>37 BOMって文字の前に付けて、その文字のコードを宣言するもので合ってましたっけ。 出力する文字はUnicodeで出ました。 CreateFileで作られたtxtがAnsiで保存されてるらしく駄目でした。 Unicodeで保存したファイルに出力するとOkでした。 メモ帳からAnsiでUnicodeを保存する時に「Unicodeの文字です。保存形式をUniCodeにしないとデータは失われます〜」 って表示がでたんで、Textファイル自体をUnicodeで保存させる設定がいるのかなと思いまして。
- 39 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 13:59:39 ]
- >>38
根本的に勘違いしてるみたいだな テキストファイルに文字コードがなんであるかを記録する方法はない(エディタの方言としてはあるが) 読み取るソフトが内容から自分で判断してる だから >Textファイル自体をUnicodeで保存させる設定がいるのかなと思いまして。 そんな設定は無い、 >CreateFileで作られたtxtがAnsiで保存されてるらしく駄目でした。 これも勘違いだろうな、メモ帳で開いて保存する時のダイアログでAnsiだと思ったんだろ?
- 40 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 14:28:33 ]
- Unicode(UTF-16)だとBOM付けないと
エディタは高確率でエンコード誤認するぞ。 C文字列にBOMは含まれないから、保存時にどうするかはプログラマの責任。
- 41 名前:35 mailto:sage [2010/05/10(月) 15:05:43 ]
- >>39
メモ帳はBOMを見て文字を判断してる。メモ帳にUnicode貼り付け時 [メモ帳に元からあったデータ] 続いて [UnicodeのBOM(0xEF, 0xBB, 0xBF) 2byte×文字数] でUnicodeを表現。 指定した文字コードで保存しようとすると、全ての文字のコードを一括変換してくる? [File_Beginに保存形式のBOM 以下→?byte×メモ帳の文字数] 今までBOM無しのデータでもきちんと表示されていたのはCharだったから。 TcharならBOM付けないとエンコードに失敗するから駄目だって事でしょうか?
- 42 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 15:12:04 ]
- >>41
メモ帳で確認するのではなく、ファイルを1バイトずつダンプするツールで確認することも覚えましょう。
- 43 名前:35 mailto:sage [2010/05/10(月) 16:00:16 ]
- >>42
確認してみた所、UnicodeのBOM(0xFF,0xFE) ANSIのBOM(無し) UTF-8のBOM(0xEF, 0xBB, 0xBF)でした。 BOMの記入後はちゃんと表示できました、ありがとうございます。
- 44 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 19:43:54 ]
- >>34
ペラン数wwwどうしてこうなった
- 45 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 19:51:44 ]
- ペテン数
- 46 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 19:59:44 ]
- ペテン師
- 47 名前:デフォルトの名無しさん [2010/05/10(月) 23:11:39 ]
- 変数hogeの値を見て、10未満ならプラス1、それ以上なら10に設定する
普通に書くなら hoge = (hoge<10?hoge+1:10); だが、hogeを何度も書いてて冗長な気がする。 もっといい書き方ない?
- 48 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 23:39:56 ]
- 普通に書くのがいいと思う。でも普通はこんなんじゃない?
if (hoge < 10) hoge++; else hoge = 10; 1行にするとこうなる。でもこれじゃわかりづらい if (hoge++ >= 10) hoge = 10;
- 49 名前:デフォルトの名無しさん [2010/05/11(火) 00:01:43 ]
- >>47
hoge = hoge-hoge*(hoge>=10)+(hoge<10)-(hoge<10)*(hoge>=10)+10*(hoge>=10);
- 50 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 00:11:00 ]
- >変数hogeの値を見て、10未満ならプラス1、それ以上なら10に設定する
if (look(hoge) < 10) set(hoge, +1); else set(hoge, 10);
- 51 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 00:20:05 ]
- hoge = std::min(hoge + 1, 10);
- 52 名前:デフォルトの名無しさん [2010/05/11(火) 00:20:08 ]
- (hoge++)<11||hoge=10;
- 53 名前:デフォルトの名無しさん [2010/05/11(火) 07:39:09 ]
- >>52
ありがとうございました
- 54 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 08:32:03 ]
- >>53
そんな保守もへったくれもないようなコード、冗談だよな? つーか、間違ってるじゃん。
- 55 名前:デフォルトの名無しさん [2010/05/11(火) 09:16:40 ]
- 自演だろ
- 56 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 12:02:50 ]
- ++hoge > 10 || hoge = 10;
で十分。 これがわかりにいくとかいう初心者の意見は聞かない。
- 57 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 12:46:04 ]
- こんなコードを書く奴と仕事したくない。
- 58 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 13:00:59 ]
- 俺も初心者とは仕事したくない
- 59 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 13:17:36 ]
- perlだとそんな感じのコード書くなあ
- 60 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 13:20:47 ]
- unix系のシェルスクリプトなら、これが書けないと話にならない
- 61 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 14:45:00 ]
- || を「命令文の後の or」の意味で「さもなければ」と読めばわかり易いよ
- 62 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 15:30:17 ]
- 普通は制御構文とはみないで論理演算子とみるわな。
短絡評価が規格に明記されてる言語は多いけど、 論理演算子とみてるからこそ「短絡評価」という表現が使われる。
- 63 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 16:06:00 ]
- >>62
>普通は制御構文とはみないで論理演算子とみるわな。 普通なら論理演算子の評価で制御機能が働くことは重々承知してるはず 初心者は知らんが
- 64 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 18:12:27 ]
- hogeクラスでメンバ関数で引数にクラスを使う場合,
hoge operator+(hoge&); のように宣言しているのはhogeクラスそのものを引数にしているということであってますか?
- 65 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 18:30:40 ]
- >>64
hogeクラスへの参照を引数としている これが君の言っていることと同じかはこっちにはわからん
- 66 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 18:55:26 ]
- >>65
hoge hoge::operator+(hoge &h){
- 67 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 18:56:52 ]
- >>65
途中送信してしまいました hoge hoge::operator+(hoge &h){ なんとかかんとか } こうゆうhへの参照という意味なのでしょうか? 宣言では型だけ書いているという意味で
- 68 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 19:04:54 ]
- >>67
引数の(型の)話しかしてないよ 引数の型がhogeへの参照だということ
- 69 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 20:53:58 ]
- 日本語でOK
- 70 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 23:44:40 ]
- コンパイラVisualC++、OS VISTAでウィンドウズプログラミングをしているのですが、
あるプッシュボタンを押すとWM_KEY系を処理してくれなくなるバグが発生してしまいました。 ボタンを押す前はきちんと処理をしてくれるのですが、 ボタンを押すとその後メッセージボックスが表示されるまで キーを押しても反応しなってしまいます。(ほかのメニューなどはきちんと処理されているようです) ちなみにほかのボタンではこのような不具合は起こりませんでした。 どなたか、ご教授お願いいたします。
- 71 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 01:25:16 ]
- すみません。
C++言語でデストラクタを再起させても良いのでしょうか? 木構造の全ノードをデストラクタで開放したいです。
- 72 名前:デフォルトの名無しさん [2010/05/12(水) 01:26:32 ]
- いいですよ。
- 73 名前:71 mailto:sage [2010/05/12(水) 01:31:24 ]
- >>72
ありがとうございます。
- 74 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 14:37:41 ]
- あーあ
- 75 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 19:19:58 ]
- 別オブジェクトのデストラクタを呼ぶ形になるだけなら問題ない
- 76 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 19:48:20 ]
- >>75
それなら再帰とはいわん
- 77 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 20:58:09 ]
- thisもパラメータとして考えるとれっきとした再帰
まあ普通は再帰と言わないだろうけど 木構造で考えるとそうなってんだろうなあ、とは思うが
- 78 名前:デフォルトの名無しさん [2010/05/12(水) 22:52:24 ]
- 「〜だけなら」とか「〜として考えると」とかは一切なく、
デストラクタが直接にでも間接にでも自身を呼び出す再帰関数であって全く問題ない。
- 79 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 02:14:33 ]
- ~A() 内で this->~A() は規格で違法なんじゃね?
きちんと調べてないけど
- 80 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 15:37:18 ]
- ソケットプログラミングでおぬぬめの本はありますか。
- 81 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 13:47:37 ]
- >>79
うんだろうね。 規格は知らないけど、デストラクタの二重呼び出しという不正なコードになるね。 引数も無いから再帰の終了条件も無いし意味の無いコードだな。
- 82 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 13:49:47 ]
- 規格を知らない奴がごちゃごちゃ言うなw
- 83 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 13:58:53 ]
- >>79 = >>81 = ド素人
- 84 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 14:20:36 ]
- 教授とか就職先の人とかに「君Cできる?」って聞かれたときに
「できますよ」って答えるにはどのくらいの知識が必要?
- 85 名前:デフォルトの名無しさん [2010/05/15(土) 14:24:17 ]
- >>84
知識は関係ないよ。やる気を試しているだけ。 仕事が欲しくないなら「できません」って言えばいい。
- 86 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 02:36:53 ]
- >>85
>>84はあれだよ。つまり『やらないか』って言われたんだと思うよ。 「はじめてだけど……がんばりますっ!」って言えば高ポイントだったに違いない。
- 87 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 14:52:12 ]
- ありすぎて困るw
- 88 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 22:45:27 ]
- 一つ質問させてください。
あるオブジェクトを登録できる管理クラスを用意し、 オブジェクトを登録後、オブジェクトが削除されたら登録も 自動的に解除するという機能を入れようと考えています。 管理クラスからもオブジェクトメソッドにアクセスできるようにしたいのですが、 この場合単純に相互参照を使用するのが一番良い方法なのでしょうか? 現状ではこのような形を考えています。 class Child{ private: Controller* m_pController; // Controller::register時に入る public: ~Child(){ m_pController->unregister( this);} void setControllerPointer( Controller* pController){ m_pController = pController;} void update( void); // Controllerから呼びたい }; class Controller{ private: Child* m_pChild[6]; public: void redister( Child* pChild, unsigned int slot); void unredister( Child* pChild); }; よろしくお願いします。
- 89 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 01:10:41 ]
- >>88
相互参照は後々トラブルの元だから避けるのが一番良い方法。 登録解除でオブジェクトを削除にするのが無難。所有者をはっきりさせるように設計しよう。 俺も昔そういう構造を作ることもあったけど今は作らないようにしている。
- 90 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 15:16:12 ]
- 質問です。
#include <iostream> #include <string> using namespace std; int main() { string org = string("org"); string org2 = string("org2"); string org3 = string("org3"); string &str = org; // コピーコンストラクタで初期化 string &str2 = org2;// コピーコンストラクタで初期化 string &str3(org3);// コピーコンストラクタで初期化 str2 = org; // コピー代入 str3 = org; // コピー代入 return 0; } コメントの理解で良いのでしょうか。 string &str2 = org2;がよくわかりません。
- 91 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 15:32:17 ]
- >>90
>// コピーコンストラクタで初期化 というのは3つとも全部間違い 参照をセットしているだけで、コンストラクタが呼び出されたりはしない
- 92 名前:90 mailto:sage [2010/05/17(月) 20:55:29 ]
- >>91
とても勉強になりました。参照難しいです。 ありがとうございます。
- 93 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 21:31:04 ]
- >>89
ありがとうございます! やはり方向ははっきりさせないとあかんのですね
- 94 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 23:52:46 ]
- 9×9の2次元配列を3×3の小さなブロック9個で区切り左上から
0,1,2, 3,4,5, 6,7,8,と番号をつけるとします。 各番号のブロックにある数字を足し、1次元の配列にブロック内の数の合計を保存したいです。 以下のプログラムを書いた場合、1次元の配列の添え字を工夫すると簡単にプログラミングできる と聞いたのですが、どうしても思いつきません。アドバイスお願いします。 (i=0;i<10;i++) (j=0;j<10;j++) total[ここの添え字を工夫]=data[i][j]; totalを2次元配列にする方法は思いつくのですが、1次元に保存する方法がどうしてもわかりません。 よろしくお願いします。
- 95 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 23:55:18 ]
- 数独?
- 96 名前:デフォルトの名無しさん [2010/05/21(金) 00:05:07 ]
- int data[81];
int total[3][3]; for(n=0;n<3;n++) for(m=0;m<3;m++) for(j=0;i<9;i++) for(i=0;j<9;j++) total[n][m] = data[m*3+i + (n*3+j)*9];
- 97 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 00:13:43 ]
- for(i = 0; i < 9; i++)
total[i] = 0; for(i = 0; i < 9; i++) for(j = 0; j < 9; j++) total[(i / 3) * 3 + j / 3] += data[i][j];
- 98 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 03:23:12 ]
- 8つのCPUが動作している環境において、
GDBでのデバッグ時に各CPUのプロセスで set debug_flag2 = 0x00008040 set test_flag5 = 0x00802020 などとと入力したい。 これを8回も入力するのが大変なので 一つのCPUで入力すれば各CPUでも設定されるようにしたいのですが そういう処理って可能ですかね? (第一引数をデバッグフラグ名の文字列, 第二引数をフラグ値 のような関数を作成したい)
- 99 名前:94 mailto:sage [2010/05/21(金) 23:02:14 ]
- >>96+97
ありがとうございます。 もう少し大きいM×Nの配列で、p×qサイズごとの合計の値を調べるにはどうしたら良いでしょうか?
- 100 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 23:36:59 ]
- 応用力皆無だな
|

|