1 名前:デフォルトの名無しさん [2009/03/02(月) 00:36:19 ] スレを勃てるまでもない低俗な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/
313 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 11:40:53 ] >int argc , char *argv[] めんどいからint ac,char *av[]って書いてる。 あとchar **argvって書くべきって意見も昔聞いた。
314 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 11:53:57 ] 4文字省略すると面倒じゃなくなるのか
315 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:03:58 ] > char **argvって書くべきって意見 覚えてる限りでいいからkwsk 俺も最初は**で書いてたけど、 mainの中で結局 for (i = 0; i < argc; i++) { argv[i]; } とかして[i]でアクセスするから、 *argv[]のほうが素直だと今は思ってる。
316 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:09:28 ] どっちでも同じ意味だからどっちでもいいと思うが。 データが連続していることを連想しやすいように[]を使うと言う意見もあるが、 argvのようにポインタの指す先が連続していて更にその中身のポインタが連続していることを表現できるわけじゃないし。 >>315 例えばstrcpy()のような関数を自分で実装するとしたら char * strcpy(char dest[], char const src[]);と書くの? 私は素直にchar * strcpy(char * dest, char const * src);と書くが。
317 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:30:38 ] > データが連続していることを連想しやすいように[]を使うと言う意見もあるが、 それはよくわからんが、 char *p;なら *(p + i)などという操作をイメージし、 char a[];なら a[i]という操作をイメージするという程度。 配列やポインタを渡す関数のパラメータは、 ポインタで統一して書いてる。 ポインタであるのに配列であるかのような書き方は嫌だ。 そういう意味では、mainのargvだけ特別扱いしてることになる。 同様の例でもmainじゃないとchar **ppとしてる。 mainのときは用途が>>315 に書いたように定型化してるというか、 argcを参考にargv[i]とするのを尊重してやりたいというか。
318 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:35:50 ] >>317 よく判らんのだが、まさかとは思うが*(p + i)なんて本当に書くの? argv[i]と書くのと同様に、件のstrcpy()の例ならsrc[index]という書き方になると思うのだけれど。 # 細かい言い訳は兎も角、main()だけは別扱いと言うことなら未だ理解できるが。
319 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:49:43 ] >>318 p[ i ]は *(p + i)のシンタックスシュガーだし
320 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:50:07 ] [i]でアクセスしたいってことは、 範囲がargcでわかってるからしたいこと。 そうでないときゃ、for (p = src; *p != '\0'; p++)としたりするでしょ。 あくまで[i]でやりたいならstrlenで一回文字列を調べてから、 for (i = 0; i < len; i++)とするでしょ。 上記のstrcpyだって、 char *strcpy(char *d, char *s) { while ( *d++ = *s++); return d; } ていうのもある。 長さを先に測りたい人は[i]すればよろし。 長さをパラメータで与えたい人は(int len)でも渡せばよろし。 ポインタでどうこうやるときは、つねに*(p + i)しなくたっていい。
321 名前:なんだかなぁ…… mailto:sage [2009/03/11(水) 12:53:46 ] >>320 いやだから、for (int index = 0; src[index] != '\0'; ++index)とは書かないの? なんで? >319の事実があるのに? 某組み込み系のガイダンスだとポインタ演算禁止なのに? 長さを先に測りたいなら[i]ってどんな理屈? 長さを先に測ってから*(p + i)しちゃいけないの?
322 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 13:10:39 ] つーか、オプション指定を避けるのにargv++することだって普通にあると思うがな。 >321もいい加減構うのやめとけ。
323 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 13:24:42 ] 好きにしろってことで終了
324 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 13:39:49 ] そうやって個々に任せた結果が使えないプログラマばかりが跋扈する現状というわけだが
325 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 13:41:36 ] そうやって自分のやり方をおしつけるから
326 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 13:59:10 ] 「前の会社ではこうやってたの!!」
327 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:14:09 ] 誰も>>320 のstrcpyに突っ込まないのはなぜ?
328 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:00:16 ] スレチだから
329 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:23:08 ] いちようMSDNでは↓のようになっとるの int main( ); または、次の引数も使えます。 int main( int argc[ , char *argv[ ] [, char *envp[ ] ] ] );
330 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:34:10 ] windowsでVisual Studio 2005を使用しています。 過去に作ったコンソールアプリケーションを編集しようと思ったのですが 不幸なことに.hファイルと.cppファイルを消してしまったために 編集ができない状態です。現状ではobjファイルが残っており、 デバッグコマンドなどでプログラムを動かすことはできるものの、 どうしても元のソースファイルを手に入れる必要があるのですが objファイルからcppファイルに逆コンパイルする方法はありますでしょうか?
331 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:51:29 ] >>330 ありません。
332 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:55:41 ] 大体どのコーディング標準でも 重要なのは一貫性を保つことであって、些細なことは個人の自由としている。 他人のコードに手を入れるときは、その人の流儀に従うべきで、 自分の宗教を持ち込んで後の読み手のリズムを狂わせてはいけない、とある。
333 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 16:26:23 ] >>330 objも消しちゃえば諦めがつくぞ すっきりしてまた一から出直そう
334 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 16:31:44 ] 逆アセならぬ逆コンパイラってないのかな。 objファイルはリンク前のコンパイル済みファイルなので 逆アセでもできそうな気がするけど。
335 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 16:39:07 ] >>331 ,333 どうしても諦めがつかなくてorz >>334 確かに、逆コンパイルというと語弊があったかもしれません… なんとか逆アセンブル出来ませんかね?orz
336 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 17:15:26 ] >>335 逆アセンブルならできるよ、まぁお前に読めるとは思えないけどさw いっぱいあるから探してみなよ 確実に1から書き直したほうが早いだろうが
337 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 18:03:23 ] 自分が書いたコードなら関数名見れば大体流れが読めるはずだしな
338 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 18:27:51 ] >>332 あまりに酷いコードの時はそうも言ってられないw
339 名前:デフォルトの名無しさん [2009/03/11(水) 19:45:07 ] >>335 逆アセンブラならvisual studioについてるよ。
340 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:44:10 ] 寧ろディスクから消したのが最近ならサルベージしてみてもいいかも。 案外、オートバックアップのサーバ上に残っていたりしてw
341 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 09:08:14 ] Linux環境においてLL言語、シェルスクリプトなどでちょっとしたことをするのには、適切と言われていますが C言語では、そういったお手軽なライブリなどは、整備されていないのでしょうか? LL言語、シェルスクリブトが適している分野をCで書くのは、どうなんでしょうか? Cに偏った使い方をするなら、binコマンドなどのcoreutiltyのmanやソースを読んで、巧みに使うのがいいんでしょうか? 住めば都で慣れれば、C言語での保守も苦では、なくなるものなのでしょうか?
342 名前:デフォルトの名無しさん [2009/03/12(木) 10:57:37 ] データのスムージングを行う処理を作りたいんですけど、 Savitzky-GolayアルゴリズムのCサンプルコードとかないですか?
343 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 12:19:52 ] >>342 NumericalRecipesにある。 ttp://www.nrbook.com/a/bookcpdf/c14-8.pdf 尤も、これ見ただけで実装できるかどうかは知らんが。
344 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:11:05 ] 初心者なのですが、ファイルからテキストを読み込んで一番大きい数字を発見したいです 43,2,21,23,みたいなテキストなのですが、質問があります ・テキスト中のスペースは無視されるのですか? ・メモリについてmallocとか全くわかってないのですが使わないとかなりヤバイですか?
345 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:29:37 ] >>344 ・無視されるように読めば無視される。 Ex.:scanf()系, atoi() ・使わなくてもできなくはないが、どっちみちポインタの扱いには慣れが必要なので、そういう意味ではやばい。 つーか、課題か何かでなければ言語の選択の段階で間違っている。
346 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:33:55 ] 実際はC#でするつもりなんですが何でするべきですか?CとC#しか知りません
347 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:45:09 ] C/C++は他の言語に比べて文字列解析が簡単ではない C#なら正規表現が使えるからかなり楽になると思うが 一般にはこの手の作業にはスクリプト系の言語がより向いている まあ、CとC#の選択なら、最初からC#のスレで聞いとけって話だ
348 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:46:58 ] すみません Cでも正規表現使えると思ってますたw ありがとうございました
349 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:55:57 ] >>348 Cの場合、C#みたいに標準で用意されていないの。
350 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:59:55 ] 何かインクルードしたら使えるとか?
351 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 15:01:12 ] >>348 今できたけど…「 ./a.out < ファイル名 」で使ってみて #include <stdio.h> #include <ctype.h> int main() { int c; int max = 0, num = 0; while((c = getchar()) != EOF){ if(isdigit(c)) num = num * 10 + c - '0'; else { max = (num > max) ? num : max; num = 0; } } max = (num > max) ? num : max; printf("max = %d\n", max); return 0; }
352 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 15:15:02 ] できればC#に組み込めるようにして頂きたい^^; 適当にコピペしたらインクルードやgetcharが使えなかった
353 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 15:25:25 ] ここはC/C++スレだ 移植は手前の仕事
354 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 15:28:52 ] フヒヒw
355 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 15:43:03 ] wwwwwwwwwwwwwww
356 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 15:46:18 ] サーセン
357 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 19:42:09 ] ソースコード書くなんて、下っ端の仕事
358 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 19:46:46 ] ソースも書けない糞上司
359 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 19:47:38 ] ソースしか書けない専門学校卒
360 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 19:51:35 ] ソースも書けない落ちこぼれに言われてもなー
361 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 19:59:11 ] 高卒の叩き上げが最強ってことで、ゆるして
362 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 20:19:56 ] 就職||卒業出来ないからって荒らすなよ。 >>342 numerical recipes in CやC++に載ってる。C++もベタに書いてあるので、 ++の意味はほとんど無いw あとはqtiplotだっけ? originのfree implementationの ソース読むとか、MSDNにも解説があるな。しかし簡単な式だから、すぐ作れるだろ 携帯からなので、PCでググればもっと探せそう。
363 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 13:46:55 ] >>362 >343 携帯だとすぐ下のレスも見られないのか? つーか、元質はCだと書いているのさえ見えてないのか。
364 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 18:01:41 ] >>363 >>343 はPCのFoxit readerでさえ読み込めないんだけど? どうせ貼るなら、こっち貼れ ttp://www.fizyka.umk.pl/nrbook/c14-8.pdf
365 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 18:55:28 ] >>364 >Foxit readerでさえ 「でさえ」? そりゃ Adobe Reader で読めなかったときに使う言葉だろ。
366 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 19:15:04 ] >>365 >>363 は携帯で読めないのかって書いてるじゃん。 まあもちろん携帯のadobe readerでも読めない訳だが。
367 名前:343 mailto:sage [2009/03/13(金) 19:21:33 ] >>364 普通にIE+AcrobatReaderで見えるけど。怪しげなクローンより本家の方がいいと思ったんだけどな。 # そして私は>363ではない。
368 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 20:26:31 ] PCのAcrobat Readerでも開かない。 なんか、変なプラグイン入れろって出る。 IEからでも。
369 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 03:35:05 ] 暗号化してあるみたいだね。headerがどうたらって出た どうせnumeric recipiは信用できないからいいけど。
370 名前:デフォルトの名無しさん [2009/03/14(土) 18:25:38 ] 作ったソフトをオープンソースで公開しようかと考えているのですが、 ネット上のサンプルをコピペしたコードが多々あって、勝手にオープンソースにしていいのかわかりません。 ライセンス表記がされていないものも多いので確認のしようがないのです。 こういう場合でも勝手にBSDライセンスとか付けて配布してしまっていいのでしょうか? 出所はもちろん明記するつもりですが。
371 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:31:47 ] バレてトラブルになった時の対処ができるなら。
372 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:55:18 ] コピペでオープンソースですか、笑っちゃいます。 コードを書けないのなら無茶な事しない。 ネット公開されてれば、使ってよいの判断ですが、 それでも、自身でコードを書き直して公開するのが本当でしょう。 動けば良いだけのコードをオープンソースですか、違うでしょ
373 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:00:58 ] そうですよねぇ。 でも反面、せっかく既にあるコードまで自分で書き直さなきゃならないのか?とも思うのです。 しかもサンプルの書き方が一番スマートなのに、あえて別の書き方をするのも無意味に思えてなりません。 サンプルを利用して書くのは普通のことだと思いますが、皆どうしているのでしょうか。 とりあえず今回はクローズドでいきます。ありがとうございます。
374 名前:デフォルトの名無しさん [2009/03/14(土) 21:54:26 ] >>370 もともとライセンス表記もせずパブリックドメイン同然で公開しているコードなら コピペのままではなく、君がそのコードを理解して、作りなおせば問題ないだろ。 出所も明かす必要無し。 コードって作り直せないくらい長かったり何回だったりするの?
375 名前:デフォルトの名無しさん [2009/03/14(土) 21:56:48 ] 何回→難解
376 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 22:21:17 ] >>374 いや逆に、数十行程度のサンプルが多くて直しようがないんです。 そのまで洗練されているのでいじると無駄にこんがらがります。 変数名やカッコの書き方を変えるといったしみったれたことしかできず…。
377 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 22:40:02 ] モジュールを丸ごとじゃなくてサンプルコードか・・・ サンプルコードをかき集めた場合は、いろんな流儀で書かれているわけだから、自分の流儀に書き直したほうがメンテしやすくなるぞ。変数名や括弧を直すだけでも効果的だ。 そうすれば改良できるところが見えてくるぞ。
378 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 22:44:48 ] なるほど、書き方は自分流に統一した方がいいですね。ありがとうございます。 小さいところでも直していけばいいのですね。そういう方向でいってみます。
379 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 22:59:23 ] つーか、数十行程度ならサンプルを理解した上で、自分で書けばいいじゃん。 その程度だったら記憶を手繰りながら書けるべ。
380 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 23:05:01 ] その二度手間が無駄って話じゃねーの
381 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 23:07:19 ] Linuxなんかは、著作権回避のために書き直しとかしてるだろ?
382 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 23:09:05 ] コピペしただけでは解ったつもりで解ってないことがほとんど。自分の手でコードを書かないと理解できない。それは無駄ではない。
383 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 23:18:43 ] せっかく再利用を前提としてソースコードを書いても ほとんど再利用されることはない 参考にすることはあっても
384 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 23:21:50 ] それは再利用性の設計が不十分なんだよ。
385 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 23:26:41 ] 再利用されることが無いのに再利用性の設計なんてそもそも不要だし
386 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 23:35:47 ] 再利用なんて、幻想だよ。 結局、作り直して使ってるだろ
387 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:52:54 ] 再利用性なんて、無駄なコード入れて行数増やすための方便になってるからなあ
388 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:06:40 ] まだ行数とか言ってんのかこの業界は
389 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:16:57 ] リファクタリングしたら負けかなと思ってる
390 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:17:37 ] わかりやすいコード記述を心掛け且つ 流用者が理解するのを諦める難解な操作を 程よく織り込むのがプロの仕事だ
391 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:30:08 ] チンケなプロだなぁ
392 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 08:58:28 ] 自分で恰好良く書いたつもりが 「何それ?だっせーソース」 とか笑われたことがあるんだろ
393 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 11:41:41 ] libファイル配布
394 名前:デフォルトの名無しさん [2009/03/16(月) 14:12:14 ] あるテーブルより、KOJIN_ID(数値型8桁)を一旦ホスト変数H_KOJIN_IDに入れ それを11桁の文字型として出力しなければいけないのですが(余った桁はスペースで埋める) 下記のようにsprintf関数を使ってH_KOJIN_IDから、ファイル書き出し用構造体outの項目KOJIN_IDに セットするときに、現状のままだと余った桁に0が入ってしまいます。 データセット部 sprintf(out.KOJIN_ID,"%11.11ld",H_KOJIN_ID); 余った桁に半角スペースが入るようなsprintf指定方法はありませんか?
395 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 14:24:22 ] "%11d"
396 名前:デフォルトの名無しさん [2009/03/16(月) 14:43:45 ] %11dで試しましたが0で埋められてしまいます。
397 名前:デフォルトの名無しさん [2009/03/16(月) 14:46:47 ] 失礼しました! 間違えて%11.11dで試しましたが、%11dだけにしたら できました。 ありがとうございました。
398 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 14:51:24 ] >>394 マルチすんなゴミ
399 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:50:51 ] C++の書籍を買おうと思っているのですが、大体何円くらいなんでしょうか? 教えてください
400 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:55:30 ] そんくらいamazonで調べろよ
401 名前:デフォルトの名無しさん [2009/03/17(火) 00:56:09 ] Cの書籍は何円ぐらいしたよ? だいたい相場はかわらんさ
402 名前:デフォルトの名無しさん [2009/03/17(火) 01:00:51 ] >>399 1800-4500円
403 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 02:17:46 ] >402 ただし、○冊セットの中の1冊のお値段、というオチが付くことも多そう。
404 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 02:49:33 ] C++のセット本なんかあったか? 見た事無いが >>403 不味い本買ってんじゃねぇか?
405 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 03:12:49 ] 週刊C++、創刊号は980円
406 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 03:32:14 ] それを言うなら、創刊号1800円で、二号から4500円だろ…
407 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 04:00:40 ] 3号は9450円か?
408 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 06:25:56 ] まず創刊号の付録を教えてくれ
409 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 06:27:57 ] VC++EEとGCCの豪華セット
410 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 06:30:29 ] ↑エラー起きた場所が分かりやすいように、AAに変換してしくれる機能搭載
411 名前:403 mailto:sage [2009/03/17(火) 10:03:10 ] >404 あー、C++であったかどうかは分かんない。 でもVC++とかだと何シリーズか見かけた気がする。
412 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 16:30:39 ] 毎週付録のモジュールをリンクしていくことでオリジナルIDEが完成
413 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:27:14 ] //////////////////////////////// a.h template<typename T> class test { public: test(); void _inc(T n); void _dec(T n); private: T m_n; }; //////////////////////////////// a.cpp #include "a.h" template<typename T> test<T>::test() : m_n(0) { } template<typename T> void test<T>::_inc(T n){ return m_n++; } template<typename T> void test<T>::_dec(T n){ return m_n--; } test<int> aaa;