1 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 10:56:37 ] スレを勃てるまでもない低俗な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/ スレを勃てるまでもないC/C++の質問はここで 8 pc12.2ch.net/test/read.cgi/tech/1235921779/ スレを勃てるまでもないC/C++の質問はここで 9 pc12.2ch.net/test/read.cgi/tech/1240022781/ スレを勃てるまでもないC/C++の質問はここで 10 pc12.2ch.net/test/read.cgi/tech/1242300936/ スレを勃てるまでもないC/C++の質問はここで 11 pc12.2ch.net/test/read.cgi/tech/1245059383/ スレを勃てるまでもないC/C++の質問はここで 12 pc12.2ch.net/test/read.cgi/tech/1248010352/
2 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 13:24:23 ] 最近の小学校では台形の面積をもとめる公式も教えてないんだね 台形の面積を求めるプログラム oshiete1.goo.ne.jp/qa5522539.html
3 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 13:42:23 ] 2点A(x1,y1)とB(x2,y2)があります 点ABを結んだ直線をCとします 点Aから直線C上を点B方向に距離xだけ進んだ点(x3,y3)を 求める式をC++プログラムで教えてください
4 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 14:18:38 ] いいえ
5 名前:3 [2009/12/15(火) 15:52:44 ] 自己解決
6 名前:デフォルトの名無しさん [2009/12/15(火) 17:53:51 ] g++&Windowsです。 #include <iomanip> でも #include <IOMANIP> でも #include <IoMaNiP> でも問題無くインクルードできるようですが、 これは標準C++の仕様ですか?
7 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 18:00:17 ] >>6 Windows の仕様です。 Linux に移植するときに泣けます。
8 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 18:26:14 ] >>7 なるほど。 つまりファイルシステム自体が大文字小文字を区別しない 仕様になっているから、ということですね。 ありがとうございました。
9 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 20:50:38 ] VC++2005で仕事場ではコンパイルおkなのに 自宅ではエラーが出ます。 エラーは、 fatal error C1083: include ファイルを開けません。'Src/foo.h': No such file or directory と出ます。 同じプロジェクトを使ってるのになぜエラーが出るんでしょうか? ソース部は #include "Src/foo.h" となっています。 フォルダ構成は Project ¥Src です。 Srcフォルダ内にfoo.hが確かに入ってます。 プロジェクトはフォルダごとコピーなので プロジェクト設定に差はありません。
10 名前:デフォルトの名無しさん [2009/12/15(火) 21:27:48 ] fmtflags っていうクラスはなんですか?
11 名前:デフォルトの名無しさん [2009/12/16(水) 08:42:57 ] 屑スレが 消しとけ
12 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 21:51:57 ] >>9 インクルードパスがフルパスになってないか? その為ドライブが違うかディレクトリー構成が違っていないか?
13 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 22:40:58 ] std::bad_allocを利用して例外処理をしているのですがちゃんと動作するか確認をしたいのですがどうすれば良いのでしょうか? 意図的にメモリリークなんて起こせるんですか?
14 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 23:11:00 ] 無限ループでリークさせまくるとか
15 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 23:13:07 ] >>14 素早い回答ありがとうございます!早速試してみますね(・∀・)
16 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 01:38:05 ] new char[(size_t)-1]のように明らかに確保できないほど大量のメモリを確保しようとするというのもいける。
17 名前:デフォルトの名無しさん [2009/12/17(木) 07:26:01 ] まて メモリーリーク の用語の認識がおかしくないか?
18 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 17:31:31 ] 確かにメモリリークする必要はないよな。
19 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 17:37:32 ] operator newをオーバーロードして、たまにbad_alloc投げるようにするとか
20 名前:デフォルトの名無しさん [2009/12/17(木) 20:20:42 ] メモリリークとは 【memory leak】 - 意味/解説/説明/定義 : IT用語辞典 e-words.jp/w/E383A1E383A2E383AAE383AAE383BCE382AF.html Yahoo!辞書 - メモリー‐リーク【memory leak】 dic.yahoo.co.jp/dsearch?enc=UTF-8&p=%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%BC%E3%83%AA%E3%83%BC%E3%82%AF&dtype=0&dname=0na&stype=0&pagenum=1&index=21171420429500
21 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 20:23:21 ] for(unsigned int i=1;i<100;++i) { static unsigned long long sull=10; sull*=sull; new char[sull]; } これでどうだ
22 名前:デフォルトの名無しさん [2009/12/17(木) 20:24:22 ] あ
23 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 21:55:16 ] >>21 ハンガリアンはダサい
24 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 22:25:53 ] >>23 名前を考えるのもめんどくさかったんだよ!
25 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 22:42:03 ] ハンガリアン無かったらWinアプリ作ときに困る
26 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 23:30:19 ] >>21 だっせーーーーーーー!
27 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 23:37:57 ] >>26 ? その調子だと生きるのもおつらいでしょう。
28 名前:デフォルトの名無しさん [2009/12/18(金) 13:27:57 ] singleton class の destractor で cout 使うのってだめなの? borland developer studio 2006 だと実行時エラーになるんだけど borland c++ builder 5 だと OK #include <iostream> class Sgtn { Sgtn() {} public: static Sgtn& Inst(); ~Sgtn() { std::cout << "Sgtn::~Sgtn" << std::endl; } }; Sgtn& Sgtn::Inst() { static Sgtn inst; return inst; } int main() { Sgtn::Inst(); return 0; }
29 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 13:31:31 ] coutが先にデストラクトされてしまうとか? グローバル変数のデストラクト順ってどうなってたっけ・・・
30 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 13:32:48 ] 神の味噌汁
31 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 13:36:17 ] なぜかワロタw
32 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 13:41:51 ] シングルトンよりカウンタ使って例外飛ばす方がクール
33 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 14:53:46 ] クールミントガム
34 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 03:35:03 ] C++にあってCに無い物の代表格として「参照渡し」が挙げられるわけだけど 書籍によるとC++の参照渡しは、特に呼び出し側が値渡ししてるのか参照渡し してるのか見分けにくいことから参照渡しを多用することは慎むよう助言されている。 となるとC++ではいったいどういう風に”ポインタの値渡し”と”参照渡し”を使い分けるべきなんだろう? まあやろうと思えば”参照渡し”は片っ端から”ポインタの値渡し”に置き換えることはできるわけだけど 果たしてそれで正しいと思う?
35 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 04:14:43 ] const参照渡し以外はポインタの値渡しで
36 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 04:45:11 ] >>35 > const参照渡し これはなぜ参照渡しする必要があるの?
37 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 10:14:33 ] プロジェクトによる
38 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 12:49:00 ] >>34 >まあやろうと思えば”参照渡し”は片っ端から”ポインタの値渡し”に置き換えることはできるわけだけど >果たしてそれで正しいと思う? その書籍にはどういうときに参照渡しを使うのか書いてないの? ポインタ渡し、参照渡しそれぞれのメリット、デメリットを調べてみるといいよ。
39 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 13:14:40 ] >>38 > その書籍にはどういうときに参照渡しを使うのか書いてないの? > ポインタ渡し、参照渡しそれぞれのメリット、デメリットを調べてみるといいよ。 うん、参照渡しの多用は自重すべきとは書いてあるけど どういうときに参照渡しを使うべきかは詳しくは書かれてはいない(・ω・)
40 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 13:20:43 ] エディタが教えてくれるから別に混乱なんかしないだろ
41 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 13:21:04 ] >>39 > うん、参照渡しの多用は自重すべきとは書いてあるけど まさかconst参照渡しまで自重しろと書いてあるの? それなら・・・ よし! その本をまず窓から投げ捨てるんだ!
42 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 14:32:29 ] >>41 言われてみればconst参照渡しはシレっと紹介されていた気がする。 なんか重要なの?>const参照渡し
43 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 14:36:52 ] >>42 const参照渡しは革命的に便利。 便利というか効率という点でもその他の意味でも必須。 残念ながら語りきれる気がしない。 >const参照渡しはシレっと紹介されていた気がする。 その本は本当にC++の本なのか!? 本気で捨てろと言いたくなった本はそれが初めてだ。
44 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 14:56:25 ] その”const参照渡し”ってのは単に”ポインタ値渡し”に置き換えることはできないの?
45 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 14:58:19 ] >>42 この程度のことはググればすぐに分かるから自分で調べろ。
46 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 15:19:48 ] >>44 考え方が根本的に間違ってるよ。 ポインタ渡しは危険でバグの巣窟として有名。 この危険なコードを書かないように導入されたのが参照渡し。 ちなみにオブジェクトを最も安全に引数に渡せるのが「const付き参照渡し」なのでかなり重要です。
47 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 14:03:59 ] namespace { class kuzu { public: void muooon(void); }; } void kuzu::muooon(void) { } ↑これって定義の方にnamespaceつけなくてもそのファイル限定になる?
48 名前:デフォルトの名無しさん [2009/12/23(水) 07:37:49 ] ・・・
49 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 10:41:59 ] なる
50 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 12:52:02 ] >>42 オブジェクトを渡すときはほとんどconst参照渡し。速いし安全。 渡したオブジェクトを変更したいときだけ非const参照渡しだね。 const参照渡しを主にして、非const参照渡しを控えるのならまだわかるけど。const参照渡しの説明が少ないのは理解しがたいな。 >>44 参照はポインターに比べて安全に使用できる。 void func2(const int& d) { } void func() { int a; { int& b=a; //OK int& c; //エラー func2(a); //ok } } 参照は以上の例のように、初期化が必須なので参照先があることが文法上保障され、実体と区別なく安全に使える。 さらにスコープによって寿命が実体a>参照b>参照dになることが文法上保障されるから安全に使用できる。これは参照渡しでも同様。 だけど、この文法上の保障もポインタと併用すると安全性をぶち壊す危険な抜け道コードがいくらでも書ける。 これが文法上で危険性を排除できる参照と、自由だけど自己責任なポインタの大きな違いだと思うよ。
51 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 13:31:51 ] int& i = *(int*)NULL; // おk
52 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 15:29:05 ] >>50 それでも俺はint型といったオブジェクトではない変数はC++であっても参照ではなく ポインタで渡すべきだと思う。ポインタが危険とはいえプログラムの可読性はあきらかに ポインタ>参照 だ。 一方クラスといったオブジェクトはconst参照渡しを強く推奨する。 オブジェクトを渡すときはconst参照で渡すものという暗黙の了解が広く普及しているだろうし。
53 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 18:28:49 ] ポインタが*iじゃなくてiでアクセスできる文法ならそれでよかった
54 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 19:17:47 ] 結局のところ可読性と安全性・最適化のどっちを犠牲にするかだな 関数名とか文脈でだいたいわかるから俺は参照使うけど
55 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 20:33:05 ] >>54 > 関数名とか文脈でだいたいわかるから それが我流プログラミングの始まりですわな(´・ω・`)
56 名前:43 mailto:sage [2009/12/23(水) 23:38:25 ] >>43 移行まじめに読んでないけど横槍レスしていいすか? > ポインタが危険とはいえプログラムの可読性はあきらかに > ポインタ>参照 明らかと言っていいかどうか分からんが、 思う思わないはまあ宗教論争だしなぁ。 ・・・あとテンプレートが大好きな俺としては参照じゃないと気持ち悪くて仕方ない。
57 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 01:26:52 ] >>52 intは値渡しだね。
58 名前:デフォルトの名無しさん [2009/12/24(木) 06:16:24 ] intをアドレス渡し(ポインタ渡し)や参照渡しするやつは何を考えてのことだろうか…? コピー渡し(値渡し)の一択だろ
59 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 10:12:49 ] >>58 無知が迷い込んで来たがな(´・ω・`)
60 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 14:51:09 ] WindowsAPIが混じっているのですがご了承ください。 以下、strの宣言が悪いといってコンパイルエラーになります。 LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_PAINT: HDC hdc; PAINTSTRUCT paint; char *str = "猫でもわかるプログラミング"; hdc = BeginPaint(hWnd, &paint); TextOut(hdc, 10, 10, (LPCSTR)str, strlen(str)); EndPaint(hWnd, &paint); break; 以下のように、{を追加するとエラーが出なくなります。どうして{が必要なのでしょうか? LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_PAINT: { ←★追加 HDC hdc; PAINTSTRUCT paint; char *str = "猫でもわかるプログラミング"; hdc = BeginPaint(hWnd, &paint); TextOut(hdc, 10, 10, (LPCSTR)str, strlen(str)); EndPaint(hWnd, &paint); break; } ←★追加
61 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 14:55:48 ] cはスコープの頭じゃないと変数を作れないのさ!
62 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 15:38:43 ] >>61 > cはスコープの頭じゃないと変数を作れないのさ! あ〜、初心者がよくやる間違いだよなw なんであんなへんてこな仕様にしたんだろう>変数の宣言場所は先頭部分のみ
63 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 15:40:54 ] switch (x) { case A: int z; //... case B: // いつのまにかzがあるぞ } C++でも case B に突入すること考えて文句が出るはず
64 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 15:46:14 ] >>60 コンパイラは何を使ってるの? 言語はC?C++? エラー内容は? VC++2008EEで試してみたけどコンパイルエラーは出なかったよ。
65 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 15:55:30 ] ウィンドウプロシージャなんだから省略した部分にcaseがずらずら書いてあると見るべきだろう。 >>60 C2360をググれ
66 名前:デフォルトの名無しさん [2009/12/24(木) 16:50:07 ] C++ってライブラリ豊富なの?特に文字列かんれん
67 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 16:54:32 ] 最悪だ
68 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 17:31:48 ] boostまで使えば
69 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 17:51:07 ] ど素人です。 oracleと接続してデータ取りたいのですが、 以下のソースで実行したところ途中までしかデータがとれません。 ※300000件中、16000件ちょいでデータがきれてしまう 何が原因かわかりますでしょうか? 切り貼りしたソースが足りなかったらすみません。 EXEC SQL OPEN CUR1; EXEC SQL WHENEVER NOT FOUND DO break; for (;;) { EXEC SQL FETCH CUR1 INTO :item_data; rows = sqlca.sqlerrd[2]; } rows = sqlca.sqlerrd[2]; for (i=0;i<rows;i++) { printf("%d\n", item_data[i].item_seqno, ); } EXEC SQL CLOSE CUR1;
70 名前:69 [2009/12/24(木) 17:53:50 ] 環境書くの忘れてました。 SunOS 5.6 Oracle 8.1.6 CCコンパイラ です。
71 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 18:21:37 ] あー Oracle スレ落ちてんのか。それにしても C/C++ の話じゃねぇな。 >EXEC SQL FETCH CUR1 INTO :item_data; 構造体の配列らしいが、なんで上書きしてんの?
72 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 20:20:47 ] template<typename T> struct Base { typedef T type; }; /* ○VC9/×GCC */ template<typename T> struct Derived : public Base<T> { typedef type type; }; /* ○VC9/○GCC */ template<typename T> struct Derived2 : public Base<T> { typedef typename Base<T>::type type; }; 前者の記法は非標準なのでしょうか?
73 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 20:46:01 ] >>57 > intは値渡しだね。 intを参照渡し、ポインタ渡しする人っている? そういうときはreturnで返すのが常套じゃね? 複数のint型変数を返すときはint型配列のポインタ渡しか参照渡しするか、 そうでなければ構造体の参照渡しかポイント渡しにするのがセオリーじゃないの?
74 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 20:57:08 ] >>66 豊富とは決して言えない 特に標準ライブラリは発狂物ww でもboostを筆頭とする各種無償ライブラリとか 商用ライブラリとかまで含めれば豊富と言っていいとは思う。
75 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 00:23:38 ] CやってからC++のstring比べれば天国だろ。
76 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 01:48:11 ] >>66 初めからなんでも用意してある環境が欲しいなら、C/C++はおすすめできない。
77 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 12:08:41 ] C++0xだと任意長テンプレートが組み込まれてるらしいですが、今はまだですよね make_tupleのように任意長のテンプレートはどうやって作ってるんでしょうか?
78 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 12:42:33 ] >>73 つ[配列にするほどでも、構造体にするほどでもないとき]
79 名前:74 mailto:sage [2009/12/25(金) 20:23:31 ] >>75 確かにCやってからのstd::stringには泣いた。
80 名前:デフォルトの名無しさん [2009/12/26(土) 18:57:20 ] ふーん
81 名前:74 mailto:sage [2009/12/26(土) 19:16:32 ] >>80 お前も俺達と一緒に泣けよ!
82 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 11:39:50 ] 文字列すべてに MFC の CString 使ってるバカの所為で Linux への移植が大変だった、って意味では俺も泣いていいかな。
83 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 11:44:00 ] CString作っちゃえ
84 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 11:57:43 ] >>82 まて、そんなMFCのCStringだなんてクソと一緒にするな。 std::stringで書いてあればその苦労は全く無かったはずだ。全く。
85 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 09:47:25 ] ちょいと相談。 template<class T>class Settings { // }; struct Arecord { // }; class Asettings : Settings<Arecord> { // }; こんなクラス構造があると思いねぇ。勿論、Aの他にもBやCもある。 んでもって、一々Arecordとするのも業腹だから class Asettingsの中でstruct Record としてしまいたいってわけだ。 するってぇと、定義の順番の都合で巧くコンパイルできねぇ。 どうしたもんかね、こりゃ。
86 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 11:56:31 ] >>85 class Asettings が何か分からないから答えられぬ。
87 名前:86 mailto:sage [2009/12/29(火) 11:58:00 ] >>85 ごめんカンチガイした。 template<class T>class Settings { // }; struct Arecord; class Asettings : Settings<Arecord> { struct Arecord { // }; // }; これじゃだめなの?
88 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 13:09:02 ] >>87 ResTHX! それだとダメだった。 Arecordが::Arecordで宣言されて Asettings::Arecordで定義されるからだと思う。
89 名前:87 mailto:sage [2009/12/29(火) 16:10:09 ] >>88 > Arecordが::Arecordで宣言されて > Asettings::Arecordで定義されるからだと思う。 なるほど。たしかに。 Asettingsのクラス定義を分割できないって仕様がくせ者邪魔だなぁ。。
90 名前:87 mailto:sage [2009/12/29(火) 16:15:29 ] >>88 ttp://codepad.org/opJUGUor ここでは通ったけど 中身を実装するとやっぱダメっぽい?
91 名前:87 mailto:sage [2009/12/29(火) 16:17:33 ] >>88 ttp://codepad.org/YBqmrMtV こんなんも通ったよ。
92 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 17:13:14 ] >>91 残念ながら、これでアウト。外のArecordと内のArecordは別物なのよね。 ttp://codepad.org/eEpbQXgN
93 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 17:32:18 ] >>92 codepadでは確かに通らないが、 それはg++が古いからでは? 俺の g++ (TDM-2 mingw32) 4.4.1 および Comeauの www.comeaucomputing.com/tryitout/ このサイトでは通ったよ。
94 名前:>87 >93 ◆Nsutagdmm. mailto:sage [2009/12/29(火) 17:47:01 ] ちなみに VC++ 2008でもbcc5.5.1でも通ったよ。
95 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 18:03:57 ] うーむ。gcc3が通らないのが問題なのか。情報THX!
96 名前:87 ◆Nsutagdmm. mailto:sage [2009/12/29(火) 19:03:18 ] ttp://codepad.org/XX7ZGdkK ちなみにこのソースはそちらの手元では通る?
97 名前:デフォルトの名無しさん [2009/12/30(水) 10:46:28 ] 私のコーディングスタイルって変ですか? structが引数になるときは参照渡し、 classの時はポインタ渡し、 としているのですが、変ですか? struct Point; class Object; Point Add(const Point &p1, const Point &p2); shared_ptr<Object> Get(Object* base); って感じなんですが・・・(^^;)
98 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 10:49:31 ] 変です
99 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 10:51:43 ] そういう風に区別する必要性がないと思うよ。 ほとんどの場合参照で渡せば問題ないはず。 ポインタで渡すのは、nullの状態を作りたい場合くらいかな。
100 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 11:00:29 ] structもclassも基本的には同じものだからね 区別する方がおかしい structで書いたらダメ出しする老害は死ぬがいいよ