- 1 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 23:26:08 ]
- エスケープシーケンスやWin32APIなどの環境依存な物でもOK。
ただしその場合、質問者は必ず、環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.40【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1184717430/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 596 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 23:12:21 ]
- ドトネトのMicrosoft.VisualC.CppCodeProviderってもしかしてclのかわりに
C++コンパイルできんのか マネージドじゃないと無理かな
- 597 名前:デフォルトの名無しさん [2007/08/22(水) 23:37:33 ]
- vector<CHoge>::iterator itr;
このitrが指してる要素の中身のアドレスを取りたいときは どうやって書けばいいんですか? CHoge* p_hoge; p_hoge = &itr; とか書いたら怒られました。
- 598 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 23:40:54 ]
- p_hoge = &*itr;
- 599 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 23:42:12 ]
- CHoge* p_hoge = &*p_hoge;
vectorなら鼻からbegin()/end()を使わず、 &v[0]と&v[0] + v.size()でポインタを得て、 それをイテレータとしても使うという手もある。
- 600 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 23:42:39 ]
- >>598
出来ました。サンクスコ
- 601 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 01:12:40 ]
- 鼻から悪魔に見えた
- 602 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 01:13:32 ]
- >>584
エンコードの指定は出来ないが、 BOMが付いてればUnicode LE/BEやUTF-8はそれで判定する。 BOMがなければANSI文字コードとみなしている。 javacやunix系のコンパイラはUTF-8にBOMが付いてると処理してくれないものが多く、 双方で利用しようとすると結構めんどい。
- 603 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 01:13:53 ]
- 悪魔から鼻に見えた
- 604 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 01:49:46 ]
- >>577
そんなことしてもコンストラクタから飛んでくる例外は止まらないぜ。
- 605 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 01:50:20 ]
- なんかかっこいい
- 606 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 11:14:46 ]
- >>602
それなりに移植性考えたらC++のソースにBOMつけるとかありえんわな で、当然boostのソースにはそんなもんついてないし、一部のヘッダにLatin-1な 人名が入ってるから、VC++8.0でコンパイルすると色々苦情を言ってくんのな
- 607 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 22:47:56 ]
- C++でHTMLのタグのようなものを使用していたり、『::』のようなものなどを見かけます。
Cには無く、C++では使用出来るようなことを幅広く説明している書籍でお勧めのものはありますでしょうか。 発売年や価格、本自体の厚さなど数多くありすぎて、どういうものを購入すればいいのか分かりません。 近くに本屋さんはあるのですがプログラム関係は少ないですのでネット通販で買おうかと考えております。 それ故、内容が確認できず判断が・・orz
- 608 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 22:50:21 ]
- HTMLのタグ・・・確かにそう見えんことはないw
- 609 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 22:58:28 ]
- なんだそりゃ、templateのことか?
あまりに斬新過ぎる見解でワロタ それはそうと、wxWidgetsのWindowProcって、ウィンドウクラスのインスタンス 見つけるのにわざわざグローバルなハッシュテーブル引いてんだな、なんだこりゃ せめてWin32ならGetWindowLongPtr()使ってくれよ なんかそうできない技術的理由があんのか ATLみたいなサンクに書き換えたら、そんだけで激高速化すんじゃね?
- 610 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 23:15:45 ]
- >>607
結局この本は必要…通読する対象ではない気がする、字引的にほぼ全部載ってる www.amazon.co.jp/dp/475611895X
- 611 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 00:31:15 ]
- そんなに高速化するわけない。
いったい一秒に何回メッセージが来て、 グローバルハッシュを引くのに何ナノ秒 余分にかかるというんだ?
- 612 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 00:37:41 ]
- 一秒に何回メッセージが来て、
グローバルハッシュを引くのに何ナノ秒 余分にかかる
- 613 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 00:38:15 ]
- 俺も初めて見たときはタグかと思った。
includeファイルに.hが付いていないことや、標準入出力に<<、>>を使うこと、 「::」の存在など何もかもが新鮮だったあの頃・・・ いまだに初心者の域を抜けられぬ現状orz
- 614 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 00:40:43 ]
- ::は斬新だった。こうゆう記号ってなんか意味を持って決められてるのかな?
- 615 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 00:43:25 ]
- 意味的に : を使いたいけど、ラベルと被るから :: にしたんじゃね?
- 616 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 01:44:24 ]
- 斬新といえばいえなくもないが、: (コロン)は、通常のラベルどころか
・caseのラベル(厳密にいえば通常のラベルと変わらない) ・クラス継承 ・コンストラクタの初期化子(?) ・条件演算子の一部 など、よくこれだけ機能を持たせられたと思うものだ。 さらに、ストリームにビットシフト演算子を使うなんて、どこのアホが考えたかと思う。 演算子オーバーロードを見せつけるための演出としか思われない。 さらに、マニピュレータだって?printf系の方がよっぽどうまく素早く整形できるわ。 あんなのC++委員会の遊びにすぎんよ。 もっとも、Cよりは便利なので使わせていただいていますけどね。
- 617 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 02:07:29 ]
- べ、別に好きでC++を使っているんじゃないんだからね!
Cより便利だから使ってあげているだけなんだからねっ!
- 618 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 02:11:22 ]
- おっさんが書いてるんだぜ?きめぇ
- 619 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 02:11:29 ]
- >>616
iostreamとマニピュレータの登場は、標準化委員会の発足より古いはず。 D&Eによれば入出力に演算子を使うのはDoug McIlroy、 マニピュレータはAndrew Koenigのアイデアだそう。
- 620 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 04:31:27 ]
- printf より優れてる点は型安全な点とポリモーフィズムだな。
printf 風マニピュレータを作らなかったのは C++ の汚点だな。
- 621 名前:デフォルトの名無しさん [2007/08/25(土) 06:21:38 ]
- なんで queue には clear() が無いの?
- 622 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 10:13:32 ]
- ああ、すまん
作るの忘れてた
- 623 名前:デフォルトの名無しさん mailto: sage [2007/08/25(土) 10:32:35 ]
- 納得した
- 624 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 10:37:06 ]
- 何のqueueにclearが無いの?
- 625 名前:デフォルトの名無しさん [2007/08/25(土) 11:05:14 ]
- 参照渡しでもらった引数をさらに別の関数に参照渡しするのって
なにか問題ありますか?
- 626 名前:デフォルトの名無しさん mailto: sage [2007/08/25(土) 11:09:57 ]
- G++ の STL の queue, priority_queue, stack.
コンテナアダプタには clear() が用意されて無いけど何か理由があるんでしょうか.
- 627 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 11:55:33 ]
- G++wwwwwwなんという未来言語wwwwww
- 628 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 12:00:58 ]
- 無知発見
- 629 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 12:13:16 ]
- 自己解決しました.
- 630 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 12:15:02 ]
- >>627
これはひどいwwwwwww
- 631 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 12:27:56 ]
- >>627=630
そんなエサで俺様が釣られるかクマー
- 632 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 13:55:48 ]
- >>625
別に問題ない。 寧ろ、参照渡しでもらったものをポインタ渡しするほうがおかしいし、 参照渡しでもらったものを値渡ししてしまったら意味が違ってしまう。
- 633 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 15:43:54 ]
- 何でないんだろうね。
プリンタジョブとかに queue を使ったとして、 ジョブを全部破棄とかすることあるだろうに。
- 634 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 16:01:42 ]
- 1億と2000年前からpopしなさい、というお達しか
- 635 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 16:12:47 ]
- while(!q.empty()) { q.pop(); }
としろ、ということか。
- 636 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 17:14:26 ]
- そうだdequeをつかおう
- 637 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 17:16:04 ]
- q.~queue();
new(&q) std::queue<T>; 冗談だよ、冗談。
- 638 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 17:24:21 ]
- 素直にq=std::queue<int>();と書いてやれよw
- 639 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 17:40:57 ]
- queue のソースを書き換えればいいんじゃね?
- 640 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 17:47:21 ]
- queue を継承した my_queue を(ry
- 641 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 18:26:24 ]
- (x = 1) = 2;
これ、Cだとエラーなんだが、C++ではコンパイルできる 何で?
- 642 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 19:11:39 ]
- x = 1の結果が、Cは右辺値、C++は左辺値と定められているから。
- 643 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 19:19:25 ]
- >>642
やっぱりそういうこと? ストラウストラップの本とK&RとCの規格書調べたんだけど、それらしい記述を 見つけられなかったんだけど、どこかに明記されている?
- 644 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 19:26:25 ]
- =演算子が参照を返すからじゃね?
- 645 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 19:51:03 ]
- >>643
642じゃないけど C言語はJIS X 3010の.5.16代入演算子 代入式は、代入後の左オペランドの値を持つが、左辺値ではない。 C++は手元にあるのが15年前のARM日本語版しかないけど、5.17代入演算子 代入演算子の結果は、代入が行われた後に左のオペランドに格納してある値である。従って、結果も左辺値である。 Cの規格書って何を調べたの?
- 646 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 19:54:07 ]
- >>644
>>642
- 647 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 19:58:03 ]
- >>645
脳内
- 648 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 20:23:22 ]
- X3014にも5.17 1節目の最後に「結果は,左辺値とする。」と書いてある。
>>644 型と右辺値左辺値は別の段階の話。
- 649 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 20:33:34 ]
- 三項演算子で変数返すコード書いて左辺値にしても大丈夫
- 650 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 22:36:12 ]
- たくさんのレスthx
>>645 同じ規格書の同じとこ読んだんだけど、 代入式: 条件式 単項式 代入演算子 代入式 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ってなってたから、代入式ってのは上の3行目(波線部分)の代入式 のことを言ってるのかと勘違いしてた 単項式 代入演算子 代入式 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ これ全体を代入式と言ってるのか とすれば x = 1 という代入式の結果は左辺値ではないということに なるか 代入式は、代入後の左オペランドの値を持つが、左辺値ではない と書いてあるけど、代入式の結果は と書いてくれたほうがクリアになるなあ ~~~~~~~~~~~~~~~~~ BNF記法が分かってなかった >>648 なるほど C++のほうはEffectiveにも参照を返すと書いてあるから 理解できた C++の規格書も買うかな
- 651 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 22:42:13 ]
- 禿の本がまだなら規格書よりそっちを先に読んだ方がいいよ
- 652 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 22:46:24 ]
- >>650
知ってるかもしれないが、JISの規格書なら以下で参照できる。 日本工業標準調査会 ttp://www.jisc.go.jp/index.html C JISX3010 C++ JISX3014 検索できないのは最悪だけど。
- 653 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 22:49:36 ]
- >>651
調べ物するときは同じ内容について 色々な本に目を通してるんだけど、 結局、規格書に明記されてると確信に変わる んで安心できる 禿の本ってEffectiveのこと? 結構高度だから必要に応じて関連する項目を 潰していこうと思ってる
- 654 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 22:52:34 ]
- >>652
最初、Cの規格書もそこを見てたんだけど 検索できなくて疲れるから買ってしまった
- 655 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 22:59:44 ]
- 禿本 : Bjarne Stroustrup著 プログラミング言語C++
- 656 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 23:52:51 ]
- >>650
代入式の結果が左辺値か右辺値かは、構文から 決定できる問題ではないので、構文を記した部分は関係ないぞ。
- 657 名前:デフォルトの名無しさん [2007/08/26(日) 03:47:09 ]
- class Hoge{private:vector<CFoo> m_vecFoo;};
Hoge::Hoge(){ //落ちる場合1 CFoo foo = CFoo(age,sage); m_vecFoo.push_back(foo); //落ちる場合2 CFoo foo; foo = CFoo(age,sage); m_vecFoo.push_back(foo); //落ちない場合 CFoo* foo = new CFoo(age,sage); m_vecFoo.push_back(*foo) } あるクラスCFooについて、newでインスタンスを生成した場合は落ちないんですが、 newを使わないで直接生成した場合(そういうのをなんていうのか知りませんが) push_backの行で落ちてしまいます。一応どの場合もコンパイルは通ってます。 原因がまったく分からないのでエスパーしてください^^;お願いします。 デバッグ結果:xutilityファイル内↓ inline void __CLR_OR_THIS_CALL _Container_base::_Orphan_all() const { // orphan all iterators _Lockit _Lock(_LOCK_DEBUG); if (_Myfirstiter != _IGNORE_MYITERLIST) { for (_Iterator_base **_Pnext = (_Iterator_base **)&_Myfirstiter; *_Pnext != 0; *_Pnext = (*_Pnext)->_Mynextiter) (*_Pnext)->_Mycont = 0; ←この辺でとまってる模様 *(_Iterator_base **)&_Myfirstiter = 0; }
- 658 名前:657 mailto:sage [2007/08/26(日) 03:53:14 ]
- //さらにもう一個、落ちる場合
CFoo foo(age,sage); m_vecFoo.push_back(foo); ちなみに、push_backをコメントアウトして飛ばせば一応落ちないで動いてるようなので 落ちているのはpush_backの行みたいです。
- 659 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 05:25:40 ]
- その「あるクラス」がどんなものなのか説明しろよ。
ちゃんとコピーコンストラクタでディープコピーしてるかとか。
- 660 名前:デフォルトの名無しさん [2007/08/26(日) 09:15:04 ]
- >>659
すいません。力尽きて寝てました。 実際のCFooはでかいのでそのまま貼ることはできませんが、 ・コンストラクタの引数にポインタ型がある ・メンバにもポインタ型がある ・引数つきで生成されること前提なのでデフォルトコンストラクタとか作ってない ・唯一書いてある引数ありのコンストラクタは、メンバを初期化リストで初期化せずに コンストラクタの中身で初期化してる ・単純なGet〜みたいな関数はヘッダに直接書いてある この辺がなにか関係してるでしょうか?
- 661 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 09:36:45 ]
- レスに間が空いててもいいが、わざわざ寝てましたなどと言わなくていい
- 662 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 09:39:42 ]
- レスに間が空いててもいいし、わざわざ寝てましたなどと言ってもいい
- 663 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 09:43:44 ]
- >>660
>659の質問に答えたまえ。 コピーコンストラクタを設けていないのなら、C++を初歩から勉強しなおせ。
- 664 名前:デフォルトの名無しさん [2007/08/26(日) 09:51:36 ]
- ディープコピーって何ですか?
- 665 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 10:28:29 ]
- 本読め
Effective C++とかEffective STLとか
- 666 名前:657 mailto:sage [2007/08/26(日) 10:35:13 ]
- なんかポインタのメンバとかもってたりするクラスは
コピーコンストラクタなるものをきちんと実装しないと 値渡ししたりするときに問題が発生しやすいらしいので m_vecFooにはポインタを渡すことにしました。
- 667 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 10:38:42 ]
- 参照を参照のままコピーするのが浅いコピー
参照先を複製してコピーするのが深いコピー
- 668 名前:デフォルトの名無しさん [2007/08/26(日) 10:52:14 ]
- コピーコンストラクタを実装してなかったことが原因な気がしてきてはいるのですが
なぜpush_backの段階で落ちてるんでしょうか? 二重でdeleteされてるわけでもないし、理屈がわかりません。
- 669 名前:デフォルトの名無しさん [2007/08/26(日) 10:52:28 ]
- ディープキスって何ですか?
- 670 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 10:56:26 ]
- 保育園でするもの
- 671 名前:657 [2007/08/26(日) 10:59:13 ]
- >コピーコンストラクタなるものをきちんと実装しないと
>値渡ししたりするときに問題が発生しやすいらしいので 訂正ですが、ポインタのメンバを持ってるクラスの コピーコンストラクタをきちんと実装してない場合、 ”値渡しする段階”で問題がでるのではなくて、 ”後始末の段階”で二重のdeleteが起きたりするので危険なんですよね? なんでpush_backしただけで落ちるんでしょうか? どんな可能性が考えられますか?
- 672 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 11:10:13 ]
- とりあえず、デバッガで
本当に push_back の行で落ちてるのかどうか確認してみた方がいいんじゃない?
- 673 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 11:13:40 ]
- >>671
CFoo foo = CFoo(age, sage); CFoo bar = foo; とりあえずこのコードで落ちたりしないか?
- 674 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 11:23:30 ]
- あと、
>CFoo foo; >foo = CFoo(age,sage); これをちゃんと動かしたいなら、代入演算子も定義しとけ。
- 675 名前:デフォルトの名無しさん [2007/08/26(日) 11:38:52 ]
- >>672>>673
CFoo foo = CFoo(age, sage); CFoo bar = foo; としたらpush_backをコメントアウトしても落ちました。 ってことはやっぱりコピーコンストラクタなるものが きちんと実装されてないのが原因っぽいです。 でも実装してないときはコンパイラが勝手に作ってくれるんじゃないんですか? で、勝手に作られたものでは”破棄時”に問題がでるので、 自分でうまく実装しないと危険ってだけなんじゃないんでしょうか?
- 676 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 11:39:52 ]
- >>671
それはもちろんだが、その前に、解放済みの動的資源を参照するオブジェクト ができてしまうことがマズイだろ
- 677 名前:657 [2007/08/26(日) 11:43:25 ]
- あぁ、なんかコピーをした段階で落ちてるんじゃなくて、
一時オブジェクトが解放される段階で落ちてるみたいです。
- 678 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 11:44:10 ]
- >>656
式の結果が左辺値になるか右辺値になるかは構文ではなく 言語の仕様ということか それなら黙って認めるしかないから明白だ
- 679 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 11:47:02 ]
- >675
>自分でうまく実装しないと危険ってだけなんじゃないんでしょうか? その「危険」の内容が、落ちるってことだ。
- 680 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 11:49:39 ]
- 誰かスレッドについて教えてくれ。
自プロセスのスレッド数を CreateToolhelp32Snapshot、Process32First、Process32Next 使ってスレッド数を出力するだけのプログラムで なんでcntThreadsの値が8になるんだ? CreateThreadとかしてないのに・・・
- 681 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:00:10 ]
- 知らんけど、システム的なDLLの誰かが作ったスレッドなんじゃない?
- 682 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:09:32 ]
- >>680
お前がアホだから
- 683 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:11:02 ]
- 純粋に自分の作ったスレッドの数のみを知る方法ってないのかな?
- 684 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:11:39 ]
- >>680
せめて ttp://www.microsoft.com/technet/sysinternals/default.mspx あたりのツール使って、実際のスレッド数をまず確かめてはどうか?
- 685 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:11:47 ]
- ある
- 686 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:11:53 ]
- 自分で作ったのなら自分で管理して数えればいいじゃん
- 687 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:27:41 ]
- ProcessWalkerを使ってみたんだが、やはり複数立ち上がってる・・・
確かに自分で数えればいいんだが、 パフォーマンスログでスレッド数見ると 自分で立ち上げたスレッド数以上立ち上がってて たまに増減するんだよね。
- 688 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:28:33 ]
- だから何だ?チラシの裏にでも書いてろ。
- 689 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:36:37 ]
- そりゃ裏でスレッドを作られったって、それはWin32の勝手だろうに。
- 690 名前:デフォルトの名無しさん [2007/08/26(日) 13:03:42 ]
- C/C++の文法自体は大体理解できたが、大規模なプログラムの作り方が
さっぱり分からん 大規模なものだと、だいたいフォルダごとに纏められていて総数数百、数千のファイルがあるが どのような感じでそんな構造をつくっていけばいいのかさっぱりです。 Webにはどこも同じような、内容ばかりポリモを動物を使っての説明w 結局みんな大規模なものはかけないのかな?
- 691 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:07:39 ]
- はは
- 692 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:09:43 ]
- >>690
大規模っつーことで複数人での開発を想定するが 個人的にはプロセスやDLL等の境界で切ってあるほうがずっとやりやすかったかな 切らないんなら、適切にスタブを作るのが常套かと思う Facadeなどの下に隠すのも良い 画面がいっぱいあるだけの良くある業務系なら、それぞれの画面に飛べるように なっていて、それぞれが独立していれば概ね問題は無い まあ所詮ケースバイケースで王道は無いだろ 「銀の弾丸はない」のだと知れ
- 693 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:10:03 ]
- 大規模なプロジェクトと動物ポリモとどういうつながりが?
- 694 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:20:38 ]
- >>687
オーディオデータとか動画扱ってる場合とかWindowsが勝手にスレッド作る場合はよくあるお
- 695 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:25:54 ]
- >>675
>でも実装してないときはコンパイラが勝手に作ってくれるんじゃないんですか? 各メンバのコピーコンストラクタを呼び出す、というコピーコンストラクタを作ってくれる。 同様に代入の場合は各メンバに対しoperator=を呼ぶ。 メンバにポインタがある場合ポインタがコピーされるだけで、ポインタが指す先は複製されない。
- 696 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:30:15 ]
- まーメンバがコピーコンストラクタが上手く動くクラスとポインタ以外の
基本型だけならデフォのコンストラクタで問題ないことも多い ポインタ生のままで保持せずにboost::shared_ptrでくるんだりしてれば 適切に参照カウント処理してくれる そうでないならちと考えろってこった
|

|