- 1 名前:前々スレ985 mailto:sage [03/12/18 06:52]
- 理解できないわけないだろ!
デザパタも知らずにC++使いの質を下げるC厨には げんあり 前スレ達 難易度:1 pc2.2ch.net/tech/kako/1058/10586/1058675178.html 難易度:2 1pc2.2ch.net/test/read.cgi/tech/1063323615/
- 930 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 01:50:14 ]
- ->
=|> ===||> だんだん貫通力が上がっていくぞ!
- 931 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 02:00:33 ]
- >>929
@は使う
- 932 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 02:02:06 ]
- $もつかえるよ
- 933 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 06:32:21 ]
- >>929
「`」はない
- 934 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:15:53 ]
- >>894
ポリモーフィズムが実行されるために、オーバーライドする関数にはvirtualをつけるべき オブジェクトスライシングが起こるからスーパークラスの変数にサブクラスの変数を入れないようにすべき 例外を投げる時はポインタではなく値で投げるべき、受ける時はオブジェクトスライシングしないように参照で受けるべき メソッドの実引数の値を変更したくない時で、組み込み型の場合は値渡しで、そうでない場合はconstリファレンスで定義すべき、 メソッドの実引数の値をメソッド内部で変更したい時で、組み込み型の場合はリファレンスで、そうでない場合はアドレス渡しで定義すべき… 意識的にそうしないという選択ができるという利点はあるのかもしれないけど… こういうことに気を使いながら、処理内容の方に注意の力点を置いて実装…自分にはムリだ('A`)
- 935 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:47:53 ]
- >>934
>メソッドの実引数の値をメソッド内部で変更したい時で、組み込み型の場合はリファレンスで、そうでない場合はアドレス渡しで定義すべき… 逆じゃないのか?
- 936 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 13:16:28 ]
- >>935
逆でした('A`)
- 937 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 13:20:14 ]
- C++の参照渡しキモ杉
- 938 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 13:21:55 ]
- >>935-936
その区別、意味あんの? 呼び出し元のオブジェクトいじってほしいときは全部参照渡しでよくね?
- 939 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 13:39:59 ]
- > ポリモーフィズムが実行されるために、オーバーライドする関数にはvirtualをつけるべき
C#もそうじゃない。Javaはそうじゃないけど。 > オブジェクトスライシングが起こるからスーパークラスの変数にサブクラスの変数を入れないようにすべき 基底クラスのコピーコンストラクタ・代入演算子はprivateにしろ。 これはこれで意識しないといけないことだけどさ。 >例外を投げる時はポインタではなく値で投げるべき、受ける時はオブジェクトスライシングしないように参照で受けるべき 受けるほうはともかく、投げるほうに意識する必要あるか?
- 940 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 14:01:07 ]
- ポインタで例外を投げるってのは、
throw new Exception(hoge) って事だから
- 941 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 16:01:24 ]
- うん。何も考えなかったら、throw Exceptionって書くだろ。
Java/C#のくせでついうっかりってならともかく。
- 942 名前:934 mailto:sage [2008/03/15(土) 22:02:44 ]
- 元ネタは詳説C++です。
>>938 まず、コスト的にはリファレンスでもポインタでもそれほど変わらないということがあって、 組み込み型の場合、メソッド内で変更可の場合は引数をポインタとすることで、 変更不可の場合の呼び出し f(a) 変更可の場合の呼び出し f(&a) となり、呼び出している箇所を見ることでf()が引数の内容を変更するかどうかのヒントを得ることができる というのがその理由です。まあ好みの問題かもしれません。 後関係ないけれどNULLを渡す可能性がある場合はリファレンスではなくポインタにしなければならない…ってのも考慮しなきゃいけないですね… >>939 コピーコンストラクタを作るのが面倒で、じゃあポインタ渡しすればいいじゃんと思ったりとか…? 自分はJava一辺倒なので、C++のプロジェクトに放り込まれたら慣れるまでは落とし穴にはまりまくりそうです。慣れてもどれか1つ忘れてポカしそう… C++でバリバリコード書きまくるというのには憧れるんですが…。
- 943 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 22:50:44 ]
- >>942
コピーコンストラクタを設けるかどうかは、どちらかというと設計の問題。 一般的に継承してポリモーフィックに扱うクラスはコピー不可とすることが多い。 あった、ちょうどこういう話。 www.ogis-ri.co.jp/otc/hiroba/technical/CppDesignNote/ Clonableにするかどうかというのが近いといえば近いのかな。 Javaはあまりやったことないけど。
- 944 名前:デフォルトの名無しさん [2008/04/03(木) 18:43:11 ]
- 顧客より保身のほうが大事なヤツなんていねーよ
馬鹿じゃねーのwwww
- 945 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 20:16:55 ]
- この世に馬鹿がいることがわかってるなら、「いねー」なんて口が裂けても言えないはずだが。
- 946 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:02:23 ]
- >>945
ヒント:嫌味
- 947 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:06:03 ]
- 社会保険事務所とかに行くとそんな感じの人が一杯いるよ! ><
|

|