- 1 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 13:07:47.91 ]
- C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part95 toro.2ch.net/test/read.cgi/tech/1336420524/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.78【環境依存OK】 toro.2ch.net/test/read.cgi/tech/1331894668/ ■長いソースを貼るときはここへ。■ codepad.org/ ideone.com/
- 2 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 13:08:20.71 ]
- ■基本■
[C++ FAQ] www.parashift.com/c++-faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) Cとその仕様を比較しながらの解説なので分かりやすい。 ***** 質問の前に必ずこの二つに目を通してください ***** [C/C++ リファレンス] en.cppreference.com/w/cpp (英語) ja.cppreference.com/w/cpp (↑の日本語訳だけどまだ未完) [Stroustrup] www2.research.att.com/~bs/ [C++ International Standard] www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=50372 [JTC1/SC22/WG21 - C++] www.open-std.org/jtc1/sc22/wg21/ ここから規格の最新ドラフトがダウンロードできる。 [JIS X3014] www.jisc.go.jp/app/pager?%23jps.JPSH0090D:JPSO0020:/JPS/JPSO0090.jsp=&RKKNP_vJISJISNO=X3014 ISO規格の日本語訳。JIS X3014:2003はISO/IEC 14882:2003 (E)に対応。
- 3 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 13:08:52.69 ]
- ■Libraries■
[Boost] Boost www.boost.org/ (日本語) www.kmonos.net/alang/boost/ (日本語) shinh.skr.jp/boost/ [標準ライブラリ] SGI-STL www.sgi.com/tech/stl/ STLport stlport.sourceforge.net/ GNU libstdc++ gcc.gnu.org/libstdc++/ Apache C++ Standard Library (STDCXX) stdcxx.apache.org/ STLFilt www.bdsoft.com/tools/stlfilt.html (日本語) episteme.wankuma.com/stlprog/ (※1999年発行注意) [Loki] sourceforge.net/projects/loki-lib/ LokiPort-MSVC6sp5 fara.cs.uni-potsdam.de/~kaufmann/?page=lokiport
- 4 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 13:09:34.44 ]
- ■Books■
amazon C,C++関連書籍 www.amazon.com/exec/obidos/tg/browse/-/3956/ref=br_bx_c_1_3/ www.amazon.co.jp/b/?node=754384 The C++ Programming Language www.amazon.com/exec/obidos/ASIN/0201700735/ www.amazon.co.jp/exec/obidos/ASIN/475611895X/ (翻訳) C++ Primer (3rd Edition) www.amazon.com/exec/obidos/ASIN/0201824701/ www.amazon.co.jp/exec/obidos/ASIN/4756140068/ (翻訳) The C++ Standard Library www.amazon.com/exec/obidos/ASIN/0201379260/ www.amazon.co.jp/exec/obidos/ASIN/4756137156/ (翻訳) Effective C++ www.amazon.com/exec/obidos/ASIN/0201924889/ www.amazon.co.jp/exec/obidos/ASIN/4756118089/ (翻訳) More Effective C++ www.amazon.com/exec/obidos/ASIN/020163371X/ www.amazon.co.jp/exec/obidos/ASIN/4756118534/ (翻訳) Exceptional C++ www.amazon.com/exec/obidos/ASIN/0201615622/ www.amazon.co.jp/exec/obidos/ASIN/4894712709/ (翻訳) More Exceptional C++ www.amazon.com/exec/obidos/ASIN/020170434X/ www.amazon.co.jp/exec/obidos/ASIN/4894714833/ (翻訳) Exceptional C++ Style www.amazon.com/exec/obidos/ASIN/0201760428/ www.amazon.co.jp/exec/obidos/ASIN/4894714663/ (翻訳)
- 5 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 13:10:09.27 ]
- ■Books(Templateまわり)■
Effective STL www.amazon.com/exec/obidos/ASIN/0201749629/ www.amazon.co.jp/exec/obidos/ASIN/4894714108/ (翻訳) Modern C++ Design www.amazon.com/exec/obidos/ASIN/0201704315/ www.amazon.co.jp/exec/obidos/ASIN/4894714353/ (翻訳) C++ Templates www.amazon.com/exec/obidos/ASIN/0201734842/ C++ Template Metaprogramming www.amazon.com/exec/obidos/ASIN/0321227255/
- 6 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 13:14:54.79 ]
- , '´ _. -‐'''"二ニニ=-`ヽ、
/ /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
- 7 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 13:34:52.46 ]
- >>1++
- 8 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 13:40:29.80 ]
- >>1++
- 9 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 13:52:22.49 ]
- STLつかうと一気に実行ファイルサイズが10倍に?!
環境によるだろ。 俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力 ランタイムを使用するようにして使っているが、例えばstd::vectorを 使っても使わない時と比べ10Kほどしか増えない すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。 C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。 とかいうエラーが出るんだけどこれってどうすればいいの? #include <stdafx.h> 後死ね。 言葉が悪いな。それで教えているつもりか。 まぁヒントぐらいにはなったな。 うむごくろう。
- 10 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 15:47:13.84 ]
- >#include <stdafx.h>
大丈夫か…
- 11 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 17:16:12.80 ]
- >>10
?
- 12 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 19:14:04.69 ]
- C++11とか覚えるのしんどいから3行にまとめてほしい(´・ω・`)
- 13 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 20:07:11.89 ]
- A a(1);
a = A(2); としたとき、2行目で、1行目で生成されたインスタンスは消滅すると思いますが、 デストラクタは実行されないようです。 実行されるにはどうしたらいいでしょうか?
- 14 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 20:09:05.92 ]
- 代入だからインスタンスaのデストラクタは実行されないよ。
二行目の「A(2)」は、ステートメントの最後でデストラクタが実行されるけど。
- 15 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 20:11:56.59 ]
- オペレーター=のオーバーロード
- 16 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 20:13:06.32 ]
- >>12
新しい文法とライブラリ。autoの変更がかなり面白い。 ラムダで広がる関数周り。関数ポインタにもできなく無いらしい。 コンパイラさんの対応にあと5年はかかるかも。
- 17 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 20:14:01.69 ]
- >>13
2行目で生成されたテンポラリオブジェクト A(2) は消滅するけど 1行目で生成されたインスタンス a はそのままだよ
- 18 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 20:14:36.33 ]
- >>16
関数ポインタにできるのは引数なしのやつだけかな
- 19 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 20:23:57.91 ]
- 引数じゃなくて変数キャプチャの有無だろ
- 20 名前:13 mailto:sage [2012/06/30(土) 20:25:10.61 ]
- a = A(2);によって、aの中身はA(2)になっているので、
aが消滅するときのデストラクタはA(2)のものです。 だから、Aの中で動的に領域をとっていると、 解放されないままになってしまいます。 newを使わないインスタンス作成をできなくしたり、 代入を禁止したりはできないでしょうか? Aにoperator=を作るのが正当な解決策でしょうか?
- 21 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 20:28:19.89 ]
- >a = A(2);によって、aの中身はA(2)になっているので、
間違い。aの中身はA(2)のコピー。 C#かJavaから来た人かな?
- 22 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 20:31:47.85 ]
- ttp://codepad.org/vhpVaBWA
デストラクタ呼ばないとかどこの糞コンパイラ使ってんだ
- 23 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 20:33:42.75 ]
- >>20
コピーと代入を禁止するにはprivateで宣言しておけばいい 何も宣言しないとデフォルトの定義が作られるから代入出来てしまう private: A(const A&); A& operator=(const A&);
- 24 名前:13 mailto:sage [2012/06/30(土) 20:33:52.52 ]
- Clang++です。
- 25 名前:13 mailto:sage [2012/06/30(土) 20:41:30.84 ]
- 24は偽物です。Javaから来ました。
C++は難しいですが、いろいろ試してみます。 ありがとうございました。
- 26 名前:13 mailto:sage [2012/06/30(土) 20:55:32.15 ]
- >>22 さん、ありがとうございます。
~A1 が表示されてほしいんですが、 代入ではデストラクタが実行されないようなので、 無理ですね。
- 27 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 21:09:47.64 ]
- ttp://ideone.com/GVtgh
これなら表示される この例じゃあまり意味はないが
- 28 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 21:37:36.80 ]
- そもそもどうやってどちらのデストラクタが実行されたかを確認してるかからして怪しい
- 29 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 21:44:15.24 ]
- >>25
お前にC++は無理。
- 30 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 22:26:53.13 ]
- むしろ代入の取り扱いに関してはJavaやC#の方が難しいと思うんだけどね。
C++はCやBASIC、FORTRANなどと同じ、コピーが基本。 負荷は大きいけど、考えることは少ない。 一方、Javaは参照が基本。負荷は小さいけど、いつ複製が必要になるかについて注意が必要。 …みたいなことが、確かJ++セルフマスターブックとかいう本を読んだ時書いてあったなぁ。 J++って、いつの本だよ^q^
|

|