- 1 名前:デフォルトの名無しさん [2008/02/28(木) 00:01:39 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.49【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1203478421/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 610 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:05:34 ]
- >>608
そ・れ・は・な・い
- 611 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:22:02 ]
- >>610
え、そうなの? >>608見てアマゾンに注文したばかりなんだけど。
- 612 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:29:54 ]
- >>611
評判はとてもいいのですが 入門向きでは無いだろあれw C++が初めてで、他になにかやってたってとかならまだいいんだろうけど
- 613 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:30:27 ]
- >>611
読む価値は非常に高い良書。 ただ入門書を探してる人のレベルによっては 難しいと感じるかもしれないというだけのこと。 いずれ読むべきだから買っておけ。
- 614 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:42:41 ]
- JavaやC#でいうところのInterface的なものを真似る場合
class IHogeの中に実装があってもいいのでしょうか?
- 615 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:48:02 ]
- 実装があるならabstractクラスを真似るべきじゃね
- 616 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:57:55 ]
- 多重継承最強!
- 617 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 22:06:06 ]
- >>614
「真似る」のなら駄目 C++的にIHogeの中に実装があってもいいかどうかは別ね
- 618 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 22:25:57 ]
- accelerated c++ はベターCでなく C++ らしいやり方で進めてるところが好き
- 619 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 22:30:02 ]
- いずれ読むべきという点で「C++の設計と進化」をお勧(ry
- 620 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:17:51 ]
- 独習C++やらロベールやら色々あるから
本屋でとりあえず立ち読みでもしてみれ。 ネットでポチっと買うと合わなかった時悲惨。
- 621 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:42:18 ]
- 現行規格とはずれているがARMの内容は秀逸。
- 622 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:53:59 ]
- 今のところ、入門に向いてるのは609の
猫でも分かるC++言語プログラミングだけだなw >>607 「猫でも〜」は本買った方がいいけど(著者にとって)、webでも見れるよ。 www.kumei.ne.jp/c_lang/howto.htm
- 623 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 00:02:50 ]
- じゃあ一発
これならわかるC++ ブルーバックス版
- 624 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 00:04:46 ]
- >>614
それなんてCOM?
- 625 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 00:05:50 ]
- 猫でもを妙に推している人がいるな。
本人なのか、信者なのか。
- 626 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 00:08:18 ]
- 猫でもわかるシリーズにC++編はないわけだが
- 627 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 00:10:15 ]
- ググったら確かに。書籍化されてるのは C だけだな。
じゃあ本人ではないなw
- 628 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 00:10:15 ]
- webにはちょっとあるけど全然使えない
- 629 名前:622 mailto:sage [2008/03/10(月) 00:13:06 ]
- >>625
推してるの一人じゃね? 俺はwebでも見れるよって言いたかったの。 "だけだな"って言ったのはacceleratedとかD&Eとか無茶やろって思ったからw
- 630 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 00:16:03 ]
- >>628
あれって全部じゃなかったんだ・・・
- 631 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 00:18:10 ]
- 独習やロベールは別に無茶じゃないだろ?
- 632 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 00:21:07 ]
- >>625
猫は素人でも知ってる場合があったぞw 素人メールに猫の話があった時には目を疑った。 Web主体の素人さんにはPG的に一番名度高いのかも知れんね。
- 633 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 00:23:37 ]
- >>631
ごめん"立ち読みしてみれ"のあたりしか読んでなかった。 独習は良いかもね。
- 634 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 00:25:03 ]
- 猫でもはサンプル動かして改造するのには最適
入門書読んで、猫でもで遊んで、オブジェクト指向とか良いプログラミング作法でも学んでいけばいいんじゃね
- 635 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 01:34:18 ]
- C言語を独学で学んでいるのですがよく分からない文字(演算子?)があります
-> ↑これはどういった意味の物なのでしょうか?
- 636 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 01:37:35 ]
- アロー演算子
- 637 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 01:38:56 ]
- >>635
A* a = new A(); //以下の2行は同じ (*a).aaa(); a->aaa();
- 638 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 01:41:57 ]
- >>635
ポインタptrが指す構造体のメンバmemである (*ptr).mem を ->演算子を用いて ptr->memと表す。 a -> b は、aが指す構造体のメンバbを表す。
- 639 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 01:45:26 ]
- >>636-638
良く分かりました。ありがとうございます。
- 640 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 01:56:28 ]
- 俺は (*a) も a-> も導入せずに、
同じ意味で a@ みたいな演算子が欲しかったよ・・・ [0]の構文糖衣として。 a@.aaa(); a@ += 10; a@++; まぁ、提案するとしても20年くらい言うのが遅い(C言語宛てになるし)わけだけど。
- 641 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 02:03:40 ]
- Delphiみたいに ^ がいいな
- 642 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 02:22:49 ]
- そうなると、定義もDelphiっぽくA^ a;になってC++/CLI設計者が涙目w
- 643 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 02:26:36 ]
- A$でおk
- 644 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 02:53:11 ]
- >>640
そもそも*(ついでに&も)が後置だったら良かったと俺は思う。 なんで前置にしたんだろう。
- 645 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 02:57:37 ]
- それを言い出すとなんで関数ポインタの宣言はあんなに狂ってるんだとかそういうハナシに
- 646 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 03:09:58 ]
- そもそもなんでこんな話題話してんだという話になる
- 647 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 03:24:32 ]
- >>644
たしかに。後置で良いよな。 >>646 void 635(){ 640(); }
- 648 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 03:46:23 ]
- 何故前置にしたのか気になってD&Eちょっと見て
C言語の設計者の方じゃないと意味無いことに気付いた
- 649 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 05:09:56 ]
- 素人の友達にWindowsプログラミングしてみたいから
いい本ないかと聞かれて猫でもわかる〜を薦めたら 馬鹿にするなと怒られた。 他意はなかったんだが、うかつだったわ。
- 650 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 06:44:56 ]
- それだけ聞くと、なんか馬鹿っぽい友達だな。
- 651 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 07:25:43 ]
- 数学でも単項演算子は前置である割合が多いから、
特別な理由をその時思いつかなければ まず後置にはしないと思う。
- 652 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 09:54:49 ]
- オブジェクトの排他制御というのはマルチスレッドで処理するとき以外は気にしなくて良いのでしょうか?
というか、マルチスレッドを利用する場面というのはどういうときなのでしょうか
- 653 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 10:01:09 ]
- マルチスレッドでぐぐれよもう
- 654 名前:デフォルトの名無しさん [2008/03/10(月) 11:21:28 ]
- >>652
ウンコしながらオナニーとか
- 655 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 11:50:51 ]
- >>652
GUIアプリなんかで通常の機能を提供しながら重い処理をバックグラウンドでやるとか
- 656 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 11:56:51 ]
- >>654
流石にそれは難しいだろう。 >>652 トイレで出すもの出しながら飲食するとか。
- 657 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 12:20:13 ]
- >>649
猫でもわかる〜のサイトは、中身はいいけど、体裁がなぁ... プログラムの入門サイトなんだし、HTMLのタグぐらい、もうちょっと調べようよつとか思うよね...
- 658 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 12:24:13 ]
- 文章が読めたら何でもいいだろ・・・
- 659 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 12:32:21 ]
- 本人乙
- 660 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 12:34:24 ]
- むしろプレーンテキストでいい
- 661 名前:デフォルトの名無しさん [2008/03/10(月) 13:33:18 ]
- Delphiなんかの ExpandFileName関数(相対パスを絶対パスにする)と
同じ働きをする関数って VC++ だとなんて関数?
- 662 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 13:37:42 ]
- GetModuleFileNameでがんばるとか
- 663 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 13:44:38 ]
- VC++標準じゃないが、boostにパス変換がある。
boost::filesystem::system_complete
- 664 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 13:45:59 ]
- >>662
何故GetModuleFileName()? あれはカレントからの相対パスを解決する関数なんだから、モジュールからの相対パスにしちゃダメだろう。
- 665 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 13:54:07 ]
- GetFullPathNameは駄目なの?
- 666 名前:デフォルトの名無しさん [2008/03/10(月) 13:56:31 ]
- クラスのメソッドから、クラスのインスタンスの変数名を知る方法ってありますか?
具体的には、 class test {}; test a1; a1.method(); としたとき、method内でa1という名前をしることは出来ますか?
- 667 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 14:05:01 ]
- >>666
ムリ
- 668 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 14:07:08 ]
- >>666
thisでよくね?
- 669 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 14:12:44 ]
- 面倒だがコンストラクタの引数で変数名を文字列受け取るようにして
自分で保持するってのは? class test { std::strung instance_name; public: test(const char *pName) { instance_name = pName; } } test a1("a1");
- 670 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 14:15:06 ]
- 変数名が知りたいっていう状況がわからんのだが
どう使うの?
- 671 名前:デフォルトの名無しさん [2008/03/10(月) 14:26:04 ]
- >>667-670
ありがとうございます。 用途はデバッグです。あるクラスの中身を表示させているのですが、 どのインスタンスかがわかりやすいようにしたかったので、、 自動化したいので、コンストラクタの引数に書くのは避けたいです。 が、これが一番確実ですかね。
- 672 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 14:30:23 ]
- >>671
Use the debugger, >671
- 673 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 14:32:57 ]
- デバッグ用途ならマクロの文字列化演算子 # を使うとか
- 674 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 14:44:44 ]
- >>671
どういう環境かは知らんが>>672の言うようにデバッガ使ったらいいと思う
- 675 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 15:03:47 ]
- >>671
何らかの制限で、デバッガが使えない場合 デバッグログが使えるのならば、 生成した側が、確保されたアドレスを出力(__FILE__と、__LINE__も一緒に出力するとわかりやすい) クラスの中身を表示するところでthisを表示すればいいんじゃないかな? >>674 なかなか面白い書き込み時間だ
- 676 名前:デフォルトの名無しさん [2008/03/10(月) 16:52:05 ]
- ttp://www.borujoa.org/upload/source/upload17298.c
簡易ブラウザを作っているのですが、ソケット接続エラーがでます。 どこが原因か分かりません。教えていただけませんか?
- 677 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 18:03:29 ]
- >>676
htonsとか?
- 678 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 18:06:29 ]
- >>676
基礎からやり直せ。
- 679 名前:デフォルトの名無しさん [2008/03/10(月) 19:01:42 ]
- ハ,,ハ
('(゚∀゚∩_ おいらをどこかのスレに送って! /ヽ 〈/\ お別れの時にはお土産を持たせてね! /| ̄ ̄ ̄|.\/ |dexiosu|/  ̄ ̄ ̄ 現在の所持品:たばこ・ライター・コーヒー・ブラックブラック・枕・ケータイ電話 睡眠薬・聖教新聞 ・ダッチワイフ・外付けSCSI340MHDD・ネットランナー4月号 TYG02・小嶋進社長・ペプシNEX・モツ煮・ヌルポ・伊予柑・寒いギャグ ・7年ものキムチ ・カビキラーストロング ・ハイスクール奇面組文庫版全13巻 ・(元)関内太郎 ・チャッカマン ・ぺヤングソースやきそば・魔法先生ネギま!14巻限定版 ・小田急3000形・PSP ・デスノート ・ファブリーズ ・ポーション ・SH902i ・Windows3.1
- 680 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 19:11:21 ]
- >>676
生ソケットでHTTPをやるプログラム例はウェブにやまほど転がってるか ら、それらを見て何が足りないか調べてみましょ。 gethostbyname()やsocket()のエラーチェックもしましょ。 それ以外にもツッコミ所が多いけど致命的じゃないので省略。
- 681 名前:676 mailto:sage [2008/03/10(月) 20:26:39 ]
- うん、何か知らないけど分かって言ってるのか分かってないのかようわからん、
役に立たない情報ありがとう。
- 682 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 20:37:07 ]
- >>680
例えばnewしてdeleteしないのは、それが習慣化すると致命的だと思うぞ。 >>676 ということで、>678。 まさかとは思うが、そのレベルで外部に直接繋ぎに行くなよ。 接続先に迷惑掛けることになるからな。
- 683 名前:676 mailto:sage [2008/03/10(月) 20:44:42 ]
- >>682
いまどきのパソコンは自動で解放するから別にデリートしなくていいし (つーかdeleteしなかったのはこの程度のプログラムだったらいらんし面倒くさいからで)、 その機能的な面を考えておるんだったら、最初っから一気にメモリ確保しといて、 解放しますよ。あと、ポート80に設定してないとか言われてたが、 あれはポート80に設定しなかったら自動で80に設定してくれるからで、面倒くさいから。 socket()のエラーチェックしなかったのは、面倒くさかったからで。
- 684 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 20:48:29 ]
- >>682
newしてdeleteしない習慣がついてます、サーセンwww。 vectorとかshared_ptrがないと生きていけません。
- 685 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 20:49:11 ]
- お前に教えるのが面倒くさいわ。
- 686 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 20:49:20 ]
- きみのところの石がPowerPCとかMIPSとかでないなら、
iprt.sin_port=80; は iprt.sin_port=20480; にするといいお
- 687 名前:676 mailto:sage [2008/03/10(月) 20:50:38 ]
- >>684
俺もC++で、ついこないだまで必死でc_str( )使ってた。
- 688 名前:デフォルトの名無しさん [2008/03/10(月) 20:52:26 ]
- newはクラス以外で使うなよ
STLのように自動開放する以外には使うべきでない
- 689 名前:676 mailto:sage [2008/03/10(月) 20:53:06 ]
- >>686
あぁ消したハズなのに普通に代入してたの残ってた。 このことか。ありがとう。 てか20480って怪しいポート何?
- 690 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 20:54:16 ]
- deleteめんどくさいならnewしなきゃいいって発想はないのかなぁ。
悪くてもこの場合固定長配列でいいし、もっと言えばstringを使うべきところ。 全く意味のないnewじゃん。 newしてdeleteしないのが致命的にならないのはこのサイズのバイナリだからであって、 自動でやるからデリートしなくて良いって考え方は非常に危険。くせにするなって言う意見のがもっとも。 たとえば、photoshopみたいなソフトを作ってる人がnewしてdeleteしなかったらどうなるか。
- 691 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 20:54:40 ]
- はい、GCを導入します
- 692 名前:676 mailto:sage [2008/03/10(月) 20:59:43 ]
- >>690
ありがとう。今度からできるだけ意味無いことは止める。 string型にすればいいだろうなぁとは思ってた。 最初mallocにしてたけど、知らん間にnewになった。 そもそもstringならnewはいらんはなしだったけど、そこまで頭回らんかった。 俺の脳裏にはC言語っぽいのをできるだけC++っぽくしようってのがあったんだと思う。 かえってそれが変に見えたのは認める。 勉強になりました。
- 693 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 21:01:47 ]
- つーか、
・getaddrinfo使えタコが ・面倒だからとエラー処理サボると、もっと面倒な事態に の例
- 694 名前:676 mailto:sage [2008/03/10(月) 21:07:27 ]
- >>693
ネットワーク系に触るの生まれて初めてなのよn getaddrinfoか、メモメモ / ̄ ̄\/) f ヾ | ⊂(゚Д゚)| ヽ _(◎)ノ ノつ /ノ/ ハヽ二二ノ ( (||i) )ヽ\ ヽ)L人(_/(ノ`J
- 695 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 21:30:06 ]
- >>694
触んないほうがいい。
- 696 名前:676 mailto:sage [2008/03/10(月) 21:42:16 ]
- >>695
NEってCCNAとかのイメージが先行して配線を弄ってるイメージ強かったけど、 プログラム組ませると「間違えると危険なんだなぁ」とは思った。勉強になりました。 安全な下級PGに戻ります。
- 697 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 22:38:48 ]
- スレがカオス気味でワロタ
- 698 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:10:24 ]
- ここでド素人の俺が颯爽と質問
int型へのポインタの宣言って int *a; int* a; この二つで差がありますか?
- 699 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:13:06 ]
- int* a, b;
- 700 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:13:52 ]
- 若干スレ違い臭いのですが、質問させてください。
コンパイル時、2つのコンパイルオプションを指定したいのですが、どのように書けばいいのでしょうか。 例えば`wx-config --cppflags` と `pkg-config --cflags gtk+-2.0` を同時に使いたいのです。
- 701 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:14:44 ]
- >>698
違いはありません。 しかし、その二つはまれに戦争の火種となります。
- 702 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:19:40 ]
- >>698
int *a, b; int* a, b;
- 703 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:33:51 ]
- >>699,701-702
ありがとうございます intだとint型とint型へのポインタが同時に宣言でき、 int*だとint型へのポインタのみ宣言できるわけですか >戦争の火種 (((( ;゚Д゚))))ガクガクブルブル
- 704 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:39:19 ]
- >>703
いいえ、どちらも同じです
- 705 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:40:40 ]
- >703
戦争の火種って言っても空襲は来ないから安心しておじいちゃん。
- 706 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:47:02 ]
- >>703
残念ながらそれは違う
- 707 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:59:24 ]
- int *a, b;
int* a, b; 二つとも aがint型へのポインタ。int型の変数bでしょうか?
- 708 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:02:17 ]
- Yes.
int* a, b; と書こうが、b はポインタにはならない。
- 709 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:02:58 ]
- >>707
その通り
- 710 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:05:39 ]
- int * a; のように書く人もいるね。
|

|