- 1 名前:デフォルトの名無しさん [2007/06/03(日) 22:33:55 ]
- エスケープシーケンスやWin32APIなどの環境依存な物でもOK。
ただしその場合、質問者は必ず、環境を書きましょう。 ※sage禁止です。 【前スレ】 【初心者歓迎】C/C++室 Ver.37【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1178432985/l50 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 481 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 23:04:08 ]
- >>480
おそらくコマンドプロンプトがバグってると思われるんだけどな
- 482 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 23:10:04 ]
- ソース出せばいいと思うよ
- 483 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 23:11:04 ]
- >>481
わらた、おもしろすぎ。
- 484 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 23:13:38 ]
- >>481
windows入れなおせばいいと思うよ
- 485 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 23:26:52 ]
- >>470
最終的にファイルに書き出すときに、sjisやeucに変換する必要があるってことね。 たしかに変換してた。 勉強になった。ありがとう。
- 486 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 23:39:48 ]
- >>474
/* */ 型のコメントなら大丈夫だよ
- 487 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 23:46:04 ]
- >>857
へぇ、今まで自分もエラーは一括して-1返してた。 ていうかそもそもmainの正常終了異常終了って何かが拾って処理してるんですか?
- 488 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 23:47:30 ]
- 何誤爆しとんねんw
- 489 名前:487 mailto:sage [2007/06/13(水) 23:51:37 ]
- 誤爆しました><
焦ってすぐ書き込もうと連打したら規制リストに引っかかりました><
- 490 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 00:52:31 ]
- NULLは大抵 0 とか (void *)0 だと思うんですが、環境によっては ゼロ じゃない時もある、とききました。すなわち、
「NULLは 0」ということを前提としたプログラムは書くべきではないですか? 例えば… void hoge(Foo *bar) { // bar が NULL じゃなかったら if (bar != NULL) // こっちはいいけど if (bar) // こう書く奴は死ぬべきでしょうか bar->...; }
- 491 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 00:54:41 ]
- >>355
それらしい記述見つからないから、flushした方がいいのかなぁ。 ようわからん。
- 492 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 00:56:23 ]
- >>490 www.kouno.jp/home/c_faq/c5.html
- 493 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 01:24:47 ]
- >>491
d。 俺も最新のドラフト見てるけど、 それにすらそれらしい記述が見つからないんだよな。 どっか違うところに隠れてるのか、それとも flush しないとヤバいのか・・・。 まあ、flush しといた方が無難そうだな。
- 494 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 19:27:21 ]
- pc11.2ch.net/test/read.cgi/tech/1181087371/l2
↑のスレで>>982のコードを書いたのですが、 このプログラムで非数字(たとえばaとか)が入力されると プログラムが異常な動作となってしまいます。 これって普通どうやって対処するものなのでしょうか?
- 495 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 19:35:50 ]
- scanf の戻り値を確認して
0 なら 1 文字捨てて読み直す
- 496 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 20:18:35 ]
- >>495さんのレスを参考に変えてみたのですが、
for(i=0;i<3;i++){ printf("%d行目の\n",i+1); for(j=0;j<3;j++){ printf("%d列目=",j+1); if(scanf("%d",&array[i][j])==0) printf("%d",array[i][j]); j--; } こういうことかと思ったらやはり間違ってて、 「一文字捨てる」という概念がいまいち分からないです。 どう直したらarray[i][j]のエラー入力は無かったことにされて 再入力するようにできるんでしょうか?orz
- 497 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 20:35:41 ]
- int ret;
while(ret = scanf("%d", &array[i][j]), ret == 0) { scanf("%*c"); } if(ret == EOF) { /* 途中で終わっちゃったのでエラー処理して終了 */ }
- 498 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 20:43:41 ]
- >>497
%*cって何やってるんだろうとググったらscanfに見たことも無い仕様が いっぱいで今更ながらにビックリしてしまったです…。 for(j=0;j<3;j++){ printf("%d列目=",j+1); if(scanf("%d",&array[i][j])==0){ scanf("%*c"); j--; } レスを参考にこんな感じで直したらいけそうな感じになりました! scanfの入力エラーって結構よくあるわりに長いこと対処法が分からなかったのでとても助かりました。 教えて頂き本当にありがとうございます><
- 499 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 20:53:50 ]
- つか、getchar でいいような
- 500 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 21:12:28 ]
- >>499
getcharって文字入力用じゃないですか? これで使う方法ってあります?
- 501 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 21:26:25 ]
- scanf("%*c"); の代わりに使ってみればいいじゃないの。
- 502 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 21:34:57 ]
- >>501
あぁあなるほど、そっちの方に使うのか! getchar=入力用って思ってたからscanfの代わりにって言ってるのかと思った。 それじゃ「111」が三桁の数値にならないよなぁ?みたいなよく分からない混乱に陥っていたorz ちょっとそちらでも試してきてみます><
- 503 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 22:46:34 ]
- 結局のところ、scanf()の代わりにfgets()+sscanf()で充分ってことだね。
- 504 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 22:48:53 ]
- 余計複雑になるだけだと思うが。
- 505 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 03:24:22 ]
- fgets+strtolにすれば10進数以外も使えて便利
文字が来ても対処簡単だし
- 506 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 04:02:27 ]
- 1行につき数値1つ?
- 507 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 13:00:46 ]
- >>506
オイオイ、strtolは変換できなかった場所のポインタ返ってくるし 変換できなかった場合はerrnoにエラーコード入るから改行までループで回せば何個でも変換できるぞ
- 508 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 13:48:27 ]
- すまんす
- 509 名前:デフォルトの名無しさん [2007/06/15(金) 15:35:13 ]
- C++の質問です。
学習用の簡単なクラス(名前をsampとします)があって、内部でintの値を保持してます。 そこに、friend関数でoperator+()を追加したいです。 最初、 samp operator+(samp & obj, int i) samp operator+(int i, samp & obj) としたところ、 obj = 10 + obj; はOKだったのですが、 obj = 10 + obj1 + 10; はコンパイルがエラーになりました。 そこで、 samp operator+(samp obj, int i) samp operator+(int i, samp obj) としたところ、コンパイルが通り、結果も意図した通りになりました。 これはなぜなのでしょうか? ちなみに、operator+()の内部は以下のように書きました。 samp operator+(int i, samp obj) { samp temp; temp.x = obj.x + i; temp.y = obj.y + i; temp.z = obj.z + i; return temp; } 引数の順序が反対の関数も内部は同じです。 今まで参照と実物とはまったく同じ扱いでいいと思っていたのですが、
- 510 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 15:43:21 ]
- samp operator+(samp & obj, int const & i) ;
samp operator+(int const & i, samp & obj) ;
- 511 名前:デフォルトの名無しさん [2007/06/15(金) 15:56:02 ]
- >>510
そのように書き直してみましたが、コンパイル通りませんでした。 以下はコンパイルエラーのメッセージです。 > g++ samp.cpp samp.cpp: In function 'int main()': samp.cpp:50: error: no match for 'operator+' in 'operator+(((const int&)((const int*)(&10))), ((samp&)(& obj3))) + obj3' samp.cpp:37: note: candidates are: samp operator+(const int&, samp&) samp.cpp:28: note: samp operator+(samp&, const int&)
- 512 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 16:10:41 ]
- >>511
すまん、sampの分を忘れてた。 samp operator+(samp const & obj, int const & i) ; samp operator+(int const & i, samp const & obj) ; 理由? 関数の戻り値はrvalueだからかな。
- 513 名前:デフォルトの名無しさん [2007/06/15(金) 16:13:55 ]
- やたらと質問ばかりですいません。
operator||()って、定義するのが何か変な感じなのですが、 ||って、そもそも 式A || 式B などと書いて、 式Aまたは式Bのどちらかが真なら、真。 という意味ですよね?このとき、||の右側の値と左側の値とを 特にoperator||(式A, 式B)としてひとつの関数内で一緒に処理しなくては ならないような状況ってないんじゃないか と思うのですが、 ,,, ここまで書いてきて、なんだか自分でも意味が分からなくなってきました。 ぶっちゃけた話、operator||()が定義できてよかった、という状況って ありますでしょうか? よろしくお願いします。
- 514 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 16:18:52 ]
- C++再考かなにかで、画像をくっつける演算子に使っていた気がするな。
実装例では簡単にするため、たんなる文字列だったが。 operator , () より使い道はあるだろ。 こんなものBoostを実装できるような変態なやつらしか使わない。
- 515 名前:デフォルトの名無しさん [2007/06/15(金) 16:23:16 ]
- >>512
教えてもらった書き方でコンパイルは通りました。 しかし、今度は obj3 = 10 + obj3 + obj3 + 100; と書くとコンパイルが通りません。 ずーっと御世話になってますので、ソースを張り付けます。 #include <iostream> using namespace std; class samp { int x; public: samp(int i = 0) {x = i;} friend samp operator+(int const & i, samp const & obj); friend samp operator+(samp const & obj, int const & i); }; samp operator+(samp const & obj, int const & i) { samp temp; temp.x = obj.x + i; return temp; } samp operator+(int const & i, samp const & obj) { samp temp; temp.x = obj.x + i; return temp; } int main() { samp obj1(10), obj2(7), obj3; obj3 = 10 + obj3 + obj3 + 100; return 0; }
- 516 名前:デフォルトの名無しさん [2007/06/15(金) 16:31:38 ]
- >>514
そうなんですか。実は今独修C++を読んでいますが、そこに、operator,()は 特殊なのでこの本では扱わない、と書いてあって、不思議な感じがして いました。たしかに手元のマシンでgrepしてみると出てきますね。 rpm -ql boost-devel | xargs egrep 'operator\,\(' /usr/include/boost/assign/list_inserter.hpp: return operator,( r ); /usr/include/boost/assign/list_inserter.hpp: return operator,( r ); ...(略) 前このスレで、独修C++をやればそれなりに力が付く、とだれかが 書いていたのでこの本を勉強しているのですが、たしかにいい本だと 思ってます。でも、この本にも書いてないことがあるのですね。 この本を終えたら次はどういう本で勉強すべきでしょうか?
- 517 名前:デフォルトの名無しさん [2007/06/15(金) 16:34:28 ]
- >>514
C++再考ですね。見てみます。 ありがとうございます。
- 518 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 16:36:00 ]
- ミスターoperatorでも目指してんのか
- 519 名前:デフォルトの名無しさん [2007/06/15(金) 16:38:22 ]
- 今見ている本が演算子のオーバーロードの章(6章)なので、
つい上記のような質問ばかりになってしまいました。
- 520 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 16:39:39 ]
- よっ、ミスターoperator!
- 521 名前:257 mailto:sage [2007/06/15(金) 16:40:19 ]
- friend samp operator+(samp const & obj1, samp const & obj2);
が必要 ((10 + obj3) +obj3) + 100 の順に評価される operator 演算子呼ばれた後のの戻り型を並べると ((samp) + samp) + int ~~~~~~~~~~~~~~~~ ここの演算定義がいない
- 522 名前:デフォルトの名無しさん [2007/06/15(金) 17:03:04 ]
- >>521
なるほど。。。。その通りですね。定義したらコンパイルできました。 あと、constの役割(とくにint const &iのあたりとか)が気になるのですが、 それはもうすこし自分で調べてみます。 ありがとうございました。
- 523 名前:デフォルトの名無しさん [2007/06/15(金) 17:10:09 ]
- >>520
いやいや。。 それにしても、C++はいろいろ複雑ですね。
- 524 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 17:18:12 ]
- 質問なんですが、C/C++の開発環境でお勧めのものってありますか。
JavaのEclipseみたいにいきなり変なことを書いてもその場で教えてくれるやつってありますかね? ソースコードを書くのが楽したいというのが要望です。 ちなみに、TurboC++を試してみましたがどうもしっくりこない。 というか、まだほとんど使っていないので分からないというのが正直なところです。 環境、WinXP 普通の32ビット (MacやLinuxでもおk) 当方のスペック 大学3年 Javaは普通に使いこなせるという程度
- 525 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 17:19:06 ]
- よろしくお願いします。
- 526 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 17:54:37 ]
- Eclipseが使えるんなら、そいつにCDTを入れてみたら?
- 527 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 18:22:25 ]
- operator&&、operator||、operator, をオーバーロードすると短絡評価でなくなってしまう
見た目が一緒なのに評価のやり方が変わってしまうのであまり良くない
- 528 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 19:50:20 ]
- >>505
sscan系でも%iというものがあってな >>512 intは値渡しでいいだろ >>513 > operator||()が定義できてよかった、という状況って Boost.Lambda
- 529 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 19:57:07 ]
- samp じゃなくて smap に見えた
- 530 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 19:57:36 ]
- >>524
VC++のアカデミックは? アカデミックは超安かった希ガス ところで、みんなは何使ってんだ? 俺はVStudioでC++とC#を中心にやってる。
- 531 名前:デフォルトの名無しさん [2007/06/15(金) 20:10:29 ]
- VC++2005expressは無料だよ
- 532 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 20:40:21 ]
- express だな。
商用には使えないが、それはアカデミックも同じだな。
- 533 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 21:12:36 ]
- 嘘言ってはいけません。
Expressも他のEditionと同じように、 商用利用を禁止する条項はない
- 534 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 21:27:41 ]
- VC++EEはリソースの扱いが難点だけど
それ以外は十分だな
- 535 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 21:30:29 ]
- >>533
前どっかのスレでそう聞いたんだけど、騙されてたのか。 ググったら商用に使えるって書いてたわ。ありがとう。
- 536 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 23:32:57 ]
- アカデミックも商用可能だな。
- 537 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 01:23:34 ]
- std::wofstream m_ofs;
void CLog::Write( LPCWSTR strMessage ) { if( !m_ofs.is_open() ) return; m_ofs << " Message:" << strMessage; } こういうものを作って CLog log; log.Write( L"てすと" ); という風に使うと Message: としか出力されません。何故でしょうか?
- 538 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 01:26:58 ]
- よく判らんけど、バッファリングされているからじゃないの?
フラッシュしたら?
- 539 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 01:27:16 ]
- ロケールの設定
- 540 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 01:34:54 ]
- Write( L"aa" )だと
Message:aaと普通に表示されます 日本語だけだめみたいです >>539 ぐぐりました こういうのが出てきたので→setlocale(LC_ALL,"Japanese") 付け足しましたが、解決ませんでした・・・
- 541 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 01:40:59 ]
- >>540
imbue() ただし forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=250724&SiteID=7
- 542 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 01:47:35 ]
- >>541
おお!解決しました! ありがとうございます!
- 543 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 02:41:07 ]
- 度々すいません __FUNCTION__ のwchar_t型というのはあるのでしょうか?
- 544 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 05:12:13 ]
- >>543
gcc の拡張だね。 static const char [] な変数と決められてるから、いまのことろ無いね。
- 545 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 05:36:40 ]
- wchar_t wfunc[sizeof __FUNCTION__];
swprintf(wfunc, sizeof __FUNCTION__, L"%s", __FUNCTION__); とか自分で変換するしかないのかな。 バッファが必要だから、マクロ化するのも難しいな。 グローバル変数を使うのもアレだし・・・。
- 546 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 09:33:44 ]
- >>540
"japanese"より""を勧める
- 547 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:10:16 ]
- >>528
scanf系の関数だと何個変換できたかしか返ってこない どこまで変換できたかとか知る方法がないからstrtolと比べたら使い勝手わるい 勉強レベルとか手抜き処理でいいならscanfでいいんだけど、 エラー検出とか入力の自由度とか考えて作ろうと思ったらscanfは使えないと思う 今のPCなんかだとあんまり問題にもならないかもしれないけど処理速度も遅いし
- 548 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:16:07 ]
- >>530
普段はcygwin上でgcc使ってるな 簡単なwinアプリもgccで作ってる 今の仕事の開発環境もcygwin+gccクロスコンパイラだったりする
- 549 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:21:21 ]
- >>547
それはわかる 1行目の10進以外もに反応しただけ
- 550 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:21:59 ]
- >>547
つ[%i] って、>528に書かれているじゃないか。 ちょっと調べることもしないでえらそうに語るなよ。
- 551 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:23:48 ]
- ツーか、むしろ突っ込むならここだな。
>どこまで変換できたかとか知る方法がないからstrtolと比べたら使い勝手わるい
- 552 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:30:18 ]
- 通りすがりのものだけど、>>550-551 のほうが変なこと言ってる
- 553 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:38:37 ]
- 知らないくせに偉そうな事を言うってのが
とてもみっともないんだよね
- 554 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:41:57 ]
- あ、ちょっと違うか。
>>547は「どこまで変換したかscanfでは判定できない」と言っている。 これが、%nを知らない、「無知なのに偉そうなことを言って恥ずかしい」こと。 >>505の基数の自由度に関しては、確かにstrtolの方が便利。
- 555 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 11:51:44 ]
- 最近Cの勉強を始めたのですが、いくつか質問したいことがあります。
講座などを見ると、Javaにできることは全部できると感じましたが、 Javaと同じようにやるのが難しいこととか、 Javaの感覚でやると間違いやすいこととか、ありますか? それからヘッダというのはプログラム本体と同じように、 関数を定義したり、グローバルに使う変数を保持してもいいのでしょうか? VCにはJavaのEclipseのように、打った瞬間コンパイルエラーを表示してくれたり、 3,4字打ったら当てはまる構文や変数名やクラス名を出してくれる機能はないのでしょうか? それがないと、打ち間違いしそうです。
- 556 名前:デフォルトの名無しさん [2007/06/16(土) 12:03:58 ]
- すみません。6年ほど前にVC++6.0を買ったんですが、入門者だった私にはどうにも難しくて
C言語のコマンドラインプログラムを勉強した程度です(独習C)のレベルです。 それから、JavaやPHPやASP.NETのWeb系の仕事をしたりしていたんですが、最近、Win32プログラムの昔買った本とかを 読んでみると結構理解できます。自分としてはVCへの憧れが強いので、MFCとかも勉強したいとおもっているのですが いまさらMFCを勉強しても無駄でしょうか?C++の文法的知識はあります。
- 557 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 12:08:01 ]
- MFCをやる利点てあるかな?
全部C#でことたりね?
- 558 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 12:10:30 ]
- >>544 >>545
ありがとうございます。 全部ユニコードで統一したいので、面倒ですがいちいち変換することにします。
- 559 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 13:44:46 ]
- >>557
.NETのランタイム要らないとか? MFCならスタティックリンクしたら 特にランタイムインストールしなくても動くし。 個人的には今からMFCやる意味はあんまり無いと思うけど。
- 560 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 14:02:04 ]
- ファイルに関するたくさんの情報を保持するクラスを作りたいんですが、
こういう時のメンバ変数はprivateにするのが基本なんですよね? Setは1つで済むとしてもGetはメンバ変数と同じだけ用意するんですか?
- 561 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 14:16:15 ]
- >>560
必要に応じて。
- 562 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 14:30:56 ]
- >>561
ではこのやり方はおかしくないんですね。 なんかこれならpublicにした方が手っ取り早いなあとか思ったんですが それはダメ!って色んなところで解説されてるので・・・ ありがとうございます。
- 563 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 14:41:34 ]
- どういう使い方をするのか知らないけど、publicにしたほうが手っ取り早いと感じるなら
クラスじゃなくて構造体を使うとかしたら?
- 564 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 15:00:11 ]
- >>562
駄目な理由を考えてみる
- 565 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 15:17:27 ]
- クラスにしたのはコンストラクタとデストラクタが使いたかったからです。
このクラスの変数には別のクラスから頻繁にアクセスする必要があって、 こういう場合隠蔽する意味あるのかな〜?と。 かといって全部同じクラスにしちゃうと大きくなりすぎてこれもまた良くないよな・・・ とか思ってなかなか決められないんです。
- 566 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 15:20:29 ]
- あ、構造体でもコンストラクタとデストラクタは使えますね。
結局隠蔽すべきかそうでないのかの判断が良く分からないと言うか。
- 567 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 15:22:57 ]
- 好きにしろ
- 568 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 15:28:29 ]
- >このクラスの変数には別のクラスから頻繁にアクセスする必要があって
まずこの設計が間違ってないかどうかを考えるべきだと思う
- 569 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 15:35:22 ]
- ですよね。
ちょっと検討しなおします。 ありがとうございました。
- 570 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 16:54:32 ]
- 横からなんですけど>>556さんの質問に関連して、
現在独学でC/C++を勉強中でコンソールプログラムを色々作ってきた後、 GUIを作るのにWin32APIを勉強していて、 山本信雄さんの『はじめてのWindowsプログラミング』を読んだら、 Win32APIをそのまま扱うのは普通しなくてMFCで作る みたいなことが書いてあったから次はMFCと思っていたのですが、 MFCやる利点がないということはこれからどう勉強を進めたら良いですか?
- 571 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:00:38 ]
- >>570
とりあえず.NETかそうでないほうをやるかで決めては
- 572 名前:そう思えるかどうかが分岐点 mailto:sage [2007/06/16(土) 17:06:41 ]
- MFCやればいいじゃん。趣味なら何の問題もないよ。
もう後がないとか、2005EEでできないとか、どうでもいいじゃん。
- 573 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:11:21 ]
- さすがにMFCはもうやめといたほうがいいだろ。
どうせまだ入り口程度しかやってないんだろ。 だったら早いうちに.Netへ移行しておけ。
- 574 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:15:07 ]
- >>571
今のスタンダートとしては.NETなのですか? ていうかそうでないほうっていうのが何なのかも分からないですorz >>572 今は趣味ですが大学卒業後プログラマになりたくて勉強しているので 実際に現場で役に立つものを勉強したいのです。
- 575 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:17:10 ]
- >>573
やはり.NETが良いんですね>< 正直なところ.NETがどんなものか理解してないので今ちょっとググって調べてみます>< ついでにですが、プログラマになるにはそれが出来ていれば大丈夫でしょうか? それともJavaとかも身に付けておいた方が良いのですか?
- 576 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:21:08 ]
- >>575
プログラマを目指すなら、MFCも.Netも要らない。 現場で使っているものをその場で使えるようになればいい。 その為には、(当たり前の)コミュニケーション能力と(通常よりは高めの)理解力があればいい。 その上で、就職後に努力できるだけの気力を持てる会社に就職してくれ。
- 577 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:21:19 ]
- プログラマになるなら最低7つは言語を習得しないとダメです。
- 578 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:34:41 ]
- 下手な言語7つ覚えるよりC++をマスターするほうが遙かに難易度が高い件について
- 579 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:36:31 ]
- そもそも何を持ってマスターと言うのか?
C++0xとかまだ定まっていないというのに
- 580 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:36:53 ]
- 難易度高くても、C++しかできないとな。
つぶしが利かない。
- 581 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 17:39:32 ]
- >>580
C++できたら他の言語なんて楽勝だろ。
|

|