1 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 21:04:54 ] C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part66 pc12.2ch.net/test/read.cgi/tech/1231640498/ ※part63, part66 が重複していたようですので part69 としました。
684 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 21:13:26 ] ??? >>645 のことだろ? static_cast<const sample&>(*this)は明らかに*thisにconstを付けてる 何か間違ってるのか
685 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 21:15:12 ] >>684 > >>645 のことだろ? 否。 >>667-668 の事。 それに対し>>679-681 というやりとりが行われている。 皆は>>645 は理解している。
686 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 21:18:48 ] なるほど理解した
687 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:34:32 ] いろいろあるよ。 www.sengoku.co.jp/CategoryIndex/wire.htm 個人的には極細より線と鈴メッキ銅線が好きだけど (どうせ趣味だし)、 信頼性からジュンフロン線使う人のほうが多い。 このシリーズのより線はストリッパー必須。 ジュンフロンは苦手です。ええ。
688 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:36:18 ] ご、誤爆・・・
689 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:43:04 ] どんまい、 というかハードとソフト両方いけるとかうらやましい
690 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:45:09 ] >>687 全然 なんだかわからないwww すごいな。
691 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 01:02:51 ] とりあえずイミフだからストリッパーってあたりに反応しとこうぜ
692 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 01:44:25 ] ストリッパーくらい分かるだろ 線の被覆を剥ぐための工具だろ
693 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 02:19:34 ] struct A{A();virtual void fun() = 0;}; struct B:A{B();fun();}; struct C{C(A&b); C problem(A&b);}; C c(B()); c.problem(B()); // no-match function になるのは何故? C::problem(一時オブジェクト参照)を弾くならコンストラクタでも弾くべきだと思うんだけど
694 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 02:57:23 ] >>692 しらんがな(´・ω・`)
695 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 03:51:45 ] ドラクエなどで登場する戦士や魔法使いを意味するFighterクラスと Mageクラスがあったとして、 そのクラスのインスタンスが持つHPやMP,攻撃力などのステータス一覧を表示する関数を作るとき、 クラス自信にその関数を持たせるのか、あるいはクラスとは関係のない部分で作るのか、どちらがいいんでしょう? クラス設計の考え方がまったくわかりません・・。
696 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 06:17:21 ] >>695 その場合はカプセル化を優先する。 まず、HPやMP,攻撃力などのステータスを格納する変数(intだったりstd::size_tだったりするだろう)のアクセス指定子がどう宣言されているかによって考えを分ける。 1. もしprivateで宣言されていて、そのステータスをpublicなメンバ関数h_point()で取得するような仕組みにしている場合(むろんそれが望ましい)は、「クラスとは関係のない部分で作る」が正解。 つまり別の関数show_status(〜)を作り、〜の部分にキャラクタのインスタンスを渡すようにする。 2. もしpublicで宣言されているならば、「クラス自身にその関数を持たせる」ないし「friend指定して外部関数を作る」が正解。しかしステータスを格納する変数がpublic指定されていること自体、そもそも望ましくないことだが。
697 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 06:23:39 ] >>693 private継承しているからだろ
698 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 08:07:42 ] >>693 そのコンストラクタで本当に動くか試した?
699 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 17:56:43 ] C c(B()); は C c(B (*)()); という関数宣言に解釈される。 B b0; C c(b0); c.problem(b0); とするとできましたが。 関数の引数のリファレンスの型にconstをつけて "const B&b"、"const A&b"のようにすると C c = C(B()); c.problem(B()); でもいけました。 なぜかは僕には分かりませんのでどなたか解説お願いします。 コンパイラはgcc4.2.1で確かめました。
700 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 19:02:59 ] const参照型のインスタンスは、呼び出す側が値渡しと同じ感覚で扱えるように、 一次オブジェクトで初期化できることになっている。
701 名前:693 mailto:sage [2009/06/02(火) 20:13:27 ] 実コードはstruct Bにtemplate特殊化やらvirtualメンバやらなんやら絡んで魔窟状態で実は C c(static_cacst<A&>(B())); に成ってますた。 >>699 C c((B())); でも逝けますね。
702 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 21:44:52 ] >>701 Effective STL の第1章第6項「C++の最も奇妙な解析に注意しよう」に書かれてるね。 (この本自体はSTLの解説本だけど…) でも、すべてのコンパイラで成功するとも書かれていない・・・おそろしや。
703 名前:デフォルトの名無しさん [2009/06/03(水) 17:16:04 ] #include <stdio.h> void main(void) { char data[3465300] int idata[3465300]; int KOTAE[3465300/2]; int data1[12032/2][300]; int idata1[300][300]; int i,j,id,a,b,No,day,LDAY,d; char fnamein,fnameout; FILE *fin,*fout; #define LDAY 30 //月ごとに変える //No=1→ステータス;No=2→交通量;No3=速度;No4=オキュパンシー #define No 2 for(day=0;day<LDAY;day++){ d=day+1; printf("%d/%d\n",d,LDAY); sprintf(fnamein,"D:\\/torakan-Y/R_barashi/Ku0409/Ku0409%02d.dat",d); sprintf(fnameout,"D:\\/torakan-Y/R_barashi/Ku04/Q_Ku0409%02d.txt",d); fin = fopen(fnamein,"rb"); fread(&data,1,3465216,fin); fclose(fin); if((fout=fopen(fnameout,"w"))==NULL) printf("Cannot open output file\n");
704 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 17:17:18 ] >>703 なんだこの凶悪なのはっ!!
705 名前:703 [2009/06/03(水) 17:19:00 ] 703のプログラムですが、コンパイルは通る一方で 出力される結果が同じ数字の繰り返しになってしまいます。 エラーの原因としては、以下の4行が怪しいと思っています。 詳しい方、よろしくお願いします。 sprintf(fnameout,"D:\\/torakan-Y/R_barashi/Ku04/Q_Ku0409%02d.txt",d); fin = fopen(fnamein,"rb"); fread(&data,1,3465216,fin); fclose(fin);
706 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 17:23:44 ] >>705 あんたが勝手に”エラー”って呼んでいるものを,具体的に書き表してごらんよ 少なくとも”出力される結果が同じ数字の繰り返し”になることは具体的に書け
707 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 17:29:33 ] 変数宣言で嫌になるものは久しぶり…
708 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 17:32:39 ] スレの住人の中におエスパー様はおられませんか?
709 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 17:34:40 ] >>703 とりあえず変数を#defineで上書きしているのが分かった
710 名前:703 [2009/06/03(水) 17:42:02 ] ≫>705様 レスありがとうございます。 出力されたファイルを開くと 526855268552685といった感じで同じ数列がただ繰り返されたファイルが 出力されます。 このプログラムはもともと、膨大なデータの中から 一部分を抽出するプログラムとなっています。 また、その莫大なデータにはそのような数列は見られないので 勝手にエラーと判定してしまいました。 >709様 ありがとうございます。 さっそく そこを修正したいと思います。
711 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 17:52:30 ] >>710 かんじんのファイルに出力している部分が・・・ねぇwwwwwwさすがにESPじゃない俺にはむり
712 名前:703 [2009/06/03(水) 17:57:36 ] for(i=0;i<3465216;i++){ idata[i]=int(data[i]); if(idata[i]<0){ idata[i]=256+idata[i]; } } id=0; for(i=0;i<3465216;i=i+2){ a=idata[i]/16; b=idata[i]%16; KOTAE[id]=a*16*16*16+b*16*16+idata[i+1]; id=id+1; } id=0; for(j=0;j<288;j++){ for(i=0;i<12032/2;i++){ data1[i][j]=KOTAE[id]; id=id+1; } }
713 名前:703 [2009/06/03(水) 18:00:29 ] /*区間データの抜き出し*/ id=0; //////6号三郷JCT‐江戸橋JCT間//////////// for(j=0;j<288;j++){ for(i=0;i<17;i++){ idata1[id][j]=data1[4*i+(8+4*501+No-1)][j]; id=id+1; } id=0; } for(j=0;j<288;j++){ for(i=0;i<2;i++){ idata1[id+17][j]=data1[4*i+(8+4*772+No-1)][j]; id=id+1; } id=0; }
714 名前:703 [2009/06/03(水) 18:02:01 ] for(j=0;j<288;j++){ for(i=0;i<15;i++){ idata1[id+19][j]=data1[4*i+(8+4*542+No-1)][j]; id=id+1; } id=0; } for(j=0;j<288;j++){ for(i=0;i<34;i++){ fprintf(fout,"%d",idata1[i][j]); } fprintf(fout,"\n"); } } }
715 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 18:02:27 ] >>712 > for(j=0;j<288;j++){ > for(i=0;i<12032/2;i++){ この辺で悪意を感じた あと,もし仮に名前を付け替えるのが許可されているなら,ぜひデータ構造と名前を変えるべきだとおもふ
716 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 18:10:48 ] まずマジックナンバーが多過ぎるから定数で宣言して分かりやすい名前を付けるべき それと、 >char fnamein,fnameout; ここはファイル名格納するバッファじゃなかろうか
717 名前:703 [2009/06/03(水) 18:11:01 ] >712 すいません。まったく悪意はないです。 もうしわけないです。 名前は変更できます。
718 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 18:16:08 ] なげぇwww codepad ttp://codepad.org/ せめてここに貼るとかさあ。。
719 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 18:19:07 ] そもそも何の目的で作られた何をするためのプログラムで どうなれば成功なんだよ そこが分からないのに何も答えられるわけがないだろ どうせ宿題なんだろうけど
720 名前:703 [2009/06/03(水) 18:26:59 ] >719様 説明不足ですいません。 トラカンデータといわれる交通量や平均速度といった 情報が網羅されているデータから 一部分を抽出して、自分たちが調べたい路線の 交通量を抜き取るプログラムです。 数列が同じ数字の繰り返しにならなければ、ほぼ成功だと思います。 宿題ではないです。申し訳ないです。 >718様 さっそく、張ってみようと思います。
721 名前:703 [2009/06/03(水) 18:30:03 ] codepad.org/jC9g9phJ さっそく貼ってみました。
722 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 18:32:15 ] ふむふむ ひどすぎて目眩がしてきた 一つ言えるのは、これはCであってC++ではないということだ だからスレ違い
723 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 18:32:56 ] と思ったらnew使ってるからC++かよ なんだこれは
724 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 18:52:09 ] 読むのに時間かかりそうだ…
725 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 19:03:32 ] 管理番号とかファイルのパスとか 危険な香りのする文字列がたくさんあるけど大丈夫なのか
726 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 19:09:39 ] >>703 とりあえず fread(&data,1,3465216,fin); ↓ fread(data,1,3465216,fin);
727 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 19:12:43 ] プログラムに間違いらしきものはなし。 データ解析部分でデータの構造が合致していないような感じだが?
728 名前:703 [2009/06/03(水) 19:18:54 ] >726様 あなたは神様です。 あなたのおかげで無事解決しました。 なんてお礼をいえばいいのかわかりません。
729 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 20:18:52 ] すげえうれしくない感謝の言葉だなぁ
730 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 20:22:20 ] You are God. I solved the problem, thank you. What it only has to say the reward is not understood.
731 名前:703 [2009/06/03(水) 20:27:36 ] と思ったら、まだ解決していませんでした。 申し訳ないです。
732 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 20:39:13 ] <stdexcept> と <exception> って、 どっちをインクルードするほうが望ましいの?
733 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 20:41:32 ] <stdexcept>で定義されている例外を使いたければ<stdexcept>
734 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 20:42:12 ] >>731 書き直してもいい? 要するにファイルの内容は unsigned short 型のデータが ビッグエンディアンで 6016x288 個格納されているのを data1 に代入すれば data も idata も KOTAE も必要ないよね
735 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 20:53:56 ] >>703 社内で使ってる(であろう)コードをこんなところに晒して、 ただで済むと思ってるのか? オープンソースじゃないだろうし、上司に知られたらやばいんじゃねーの。
736 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 21:21:08 ] スタックオーバーフローエラーを直してくれた先輩には もう見限られたのか?
737 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 21:58:15 ] >>731 なにが解決してないの?
738 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 22:40:43 ] ほんとプロが作るソースって ゴミクズだよな。 どこもかわらねえなぁ。
739 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 22:48:19 ] え?>>703 の話なら、プロのコードじゃないっしょ。 社内でコンピュータにちょっと詳しい人(事務職とかバイトのお兄ちゃんとか)に アホ課長が「エクセルで計算するのめんどいからお前プログラム書けよ」って 仕方なくしこったんじゃない? どうみてもCで書いたコードを、その人がやめちゃって保守要員がいなくなったので これまたその辺のちょっとコンピュータ詳しい奴にむりくりやらせてるってところでは。 すごいエスパー。昔、エスパドリューはエスパーが身につける特別な装備だと思っていたのを思い出した。
740 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:49:15 ] ふと思ったんだが↓↓ C++では関数が返せる変数の型は1つだけである。 (その型と継承関係によってはその子クラスの型でも返せることもあるが。) ところが、例外処理におけるthrowは関数から外へ任意の型の例外を投げることが可能である。 これをその関数の返り値(戻り値)とみなして プログラミングをするという面白い技法が この世に存在していてもおかしくないのではないか と思ったのだが、誰か知っている人いない? 例外を使ったプログラミングの話をしている訳じゃ無くて あくまでthrowによる例外を戻り値として利用するスタイルってことで。
741 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:55:54 ] テンプレートクラスを使えば戻り値の型なんて自由自在ですよ。 無茶しないでください。
742 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:57:22 ] そのアイデアに「catchされなければ呼出元へ伝播する」という例外の特徴も考慮した? していないならboost::any返せばいいでしょという話だと思う。
743 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:57:35 ] >>740 実用してる奴がいたら絶対に近づきたくないが ネタとしてはおもしろそうだな。 はたして意味のあるプログラムを作ることができるのか・・・
744 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 00:04:54 ] もしうまいことやったとしても、Schemeなんかの継続のきわめて限定的なまねごとになるのではと思う。 どういう形か想像もつかないが。
745 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 00:10:33 ] 継続ねえ。 じゃあお題は例外でC#で言うところのyield()を作る でどうよ。
746 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 00:17:20 ] _ さっそく自分で否定しちまった・・・
747 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 00:39:24 ] >>740 のは面白いな 何か可能性を感じる
748 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 01:27:32 ] variantでいいじゃん 戻り値の型として使いたいものの集合がコンパイル時に決まっていないと 例外使う方法も結局何もできないわけだし
749 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 02:00:23 ] 変態プログラミングの可能性と聞いて
750 名前:703 [2009/06/04(木) 02:02:54 ] >734様 先程、プログラミングを回してみた結果 無事解決しました。 727様のおっしゃるとおり データ解析部分でデータの構造が合致してないことが 原因でした。 もし、お時間があるなら、書き直してくださったプログラムを 見せていただきたいです。
751 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 02:36:54 ] >>740 そういうのはイベント駆動型とかいうやつじゃないか
752 名前:740 mailto:sage [2009/06/04(木) 06:28:37 ] >>741 え? どういうことだい? よく分からないんだが。。。 みんなありがとう。 俺も絶対やらないと思うけど、 >そのアイデアに「catchされなければ呼出元へ伝播する」という例外の特徴も考慮した? 一応考えてる。 boost::anyやvariantは頭をよぎったが忘れることにした。 うーん、むずかしいよねぇ。 少なくとも俺はやらないけど、きっと誰かが何かすごいことを やってくれるんじゃないかと思った。
753 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 11:11:57 ] やらないのかよ
754 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 11:52:00 ] >>752 c#でもやっていてください とくにLINQ
755 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 14:00:53 ] >>752 例外のキャッチってコストかかるんでパフォーマンス劣化が激しいと思うぞ
756 名前:デフォルトの名無しさん [2009/06/04(木) 14:02:25 ] アゲ
757 名前:732 mailto:sage [2009/06/04(木) 17:05:22 ] >>733 ありがとう!
758 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 17:20:46 ] >>740 むやみやたらにthrow使うのはgotoと大して変わらないので、 普通やらん。 やめとけ。
759 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 17:51:57 ] 普通に関数オブジェクトでも引数として渡せばいいだけやん。
760 名前:740 mailto:sage [2009/06/04(木) 17:57:29 ] もちろん俺だって普通はやらんさ。 でもまあどこかの変態級のプログラマがうまくこれを生かして…(ry
761 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 20:32:06 ] 試しに #define return assert(0) して、throw以外で関数から出るのを禁止してプログラム書いてみたらいい 何かが見えてくるかもしれんぞ
762 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 20:42:01 ] C++の関数を全部こう書き換える retType func(/* ... */){ /* ... */ return foo; } ↓ function func(/* ... */) throw(retType){ /* ... */ throw foo; } そして class function{private:function();~function();}; と定義すれば、めでたく例外指向プログラミング言語の出来上がり 使うのは遠慮します
763 名前:740 mailto:sage [2009/06/04(木) 21:00:49 ] >>761-762 ありがとう。 うーん、なんとも気持ち悪い物が出来上がりそうだw
764 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:10:07 ] 三値論理の関数型言語?で似たような事が出来たような? よくわからんが
765 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:20:59 ] boost::any を使えば受け取る側は関数側から何が返ってくるか知らなくてもいいけど 例外の場合は、帰ってくる型が何であるかは知っておく必要があるよね? 間違ってるかしら・・・
766 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:47:52 ] >>765 一応catch(...)で、何でも受けれる。 受けられるだけだが。 戻り値返しにない例外の機能として、 安全な中間すっとばしがある。 funcA() -> funcB() -> funcC() -> 例外発生 ↑-----------------------------」 これを使えば、非常に柔軟な逆フロー制御が実現できる。 つまり、メインルーチンを例外のcatch()ブロックに書くのだ。 これを使って何が出来るかというと、それは次の人どうぞ。
767 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 00:11:17 ] 一方ロシアはgotoを使った。
768 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 00:16:15 ] anyだろうと何だろうと型を知らないと何も出来ないから、 結局そのままどっかに転送するしかないよな throw;で同じ事が出来そうな気はする
769 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 00:19:15 ] VC9だと落ちるんだけどw #include <iostream> void fib(int n) { if (n < 2) { throw 1; } else { try { fib(n-1); } catch (int r1) { try { fib(n-2); } catch (int r2) { throw r1 + r2; } } } } int main() { try { fib(20); } catch (int ret) { std::cout << ret << std::endl; } return 0; }
770 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 00:21:40 ] あーそうだ、多重例外は未定義だったな 標準C++の範囲で例外指向プログラミングはできないようです
771 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 00:29:57 ] うーん、 変態Chain Respinsibility? void discover() { switch (random) { case 0: throw Chair; case 1: throw Human; case 2: throw Orange; case 3: throw Truth; } } void loop() { while (1) { Sitter(Killer(Eater(Philosopher(discover)))); } } どうすんだこれ・・・
772 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 00:31:46 ] 綴りひでぇorz
773 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 00:45:36 ] いいかんじに変態的だな
774 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 02:23:18 ] >768 visitorで何とかする手はあるよ。 ttp://www.boostpro.com/vault/index.php?action=downloadfile&filename=holder.zip&directory=Data%20Structures&
775 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 05:26:42 ] 多重例外って何ですか? アクティブな例外が2つ以上同時に発生することですか? それともtry・catchブロックの中にtry・catchブロックがあることですか?
776 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 09:32:40 ] 例外ハンドラで例外が出ること
777 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 11:12:55 ] テンプレートクラスで自身を返す場合、書き方としてどっちが正しいのでしょうか。 1も正しいなら今後1で書こうと思ってます。 template<class T> class X { public: X &Func() // 1 X<T> &Func() // 2 { return *this; } }
778 名前:デフォルトの名無しさん [2009/06/05(金) 11:33:33 ] C++を1から学習しようかと思うのですが、参考書は何がおすすめでしょうか? visual C++を使おうかと思っているのですが。 分厚くてもよいので、一冊で応用まで深く学習出来るのはありませんかね?
779 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 11:52:54 ] >>777 2、テンプレート引数を省略しないといけないのはコンストラクタだけ
780 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 12:03:14 ] >>778 禿本を買っておけば間違いは無い
781 名前:デフォルトの名無しさん [2009/06/05(金) 13:44:02 ] >>780 禿本とは何ですか?
782 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 13:53:12 ] softbank
783 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 13:54:12 ] そういう時に真っ先に「C++ 禿本」で検索しない精神がよくわからん。
784 名前:デフォルトの名無しさん [2009/06/05(金) 14:47:44 ] 検索したのですが、出てきませんでした。 ていうより、59件ヒットしてその全てがただ禿本とC++を含んでるやつのみで 何の略かも書いてありませんでした。 その本の正式名称がわかりません。 すいませんが、本の正式名称で書いていただけませんか?