09/09/08 21:07:57
make_tupleにダサイって言われると地味に凹むな
965:デフォルトの名無しさん
09/09/09 11:35:00
同意
966:デフォルトの名無しさん
09/09/09 23:13:55
ある本の息抜き用の演習問題に、「++CではなくC++と名付けられた理由を考えよ」ってのがあったのですが
正解は何なのでしょうか?
967:デフォルトの名無しさん
09/09/09 23:19:55
Cの互換性を保つため
968:デフォルトの名無しさん
09/09/09 23:26:45
あ、なるほど。前置インクリメントだともはやCではないものを意味するってことですね。
969:デフォルトの名無しさん
09/09/09 23:49:38
まあ、今適当に考えただけなんだけどねw
トンチ的な問題だろうから、たぶんそんなに的はずれでもないと思う
970:デフォルトの名無しさん
09/09/10 04:17:25
へんなコストがかかるところ
971:デフォルトの名無しさん
09/09/10 11:40:42
>>970
深いな。
972:デフォルトの名無しさん
09/09/10 13:58:48
//beginコード1
for(int i=0; i<5; i++){
// コード
}
int i;
for(i=0; i<5; i++){
// コード
}
C++で上か下、どちらのループの方が良い(皆さん使われている)のでしょうか?
973:972
09/09/10 13:59:57
1行目の
//beginコード1
は間違いです、すみません
974:デフォルトの名無しさん
09/09/10 14:03:33
i の中身がループの外でも意味を持つなら後者、持たないなら前者で十分。
どっちが良いとか悪いとかじゃなく。
975:デフォルトの名無しさん
09/09/10 14:35:18
>>974
なるほど、ありがとうございます。
976:デフォルトの名無しさん
09/09/10 15:45:51
>>966
C++ : Cを評価してからインクリメントする
++C : Cをインクリメントしてから評価する
C++ は、まずCを評価してから機能を加えたんだよ。
977:デフォルトの名無しさん
09/09/10 17:13:48
baseクラスがいくつかの仮想メンバ関数を持っています(たとえば、void f1(), void f2())
f1の実装は2パターン、f2の実装も2パターンあります
subクラス側で外部ファイルを参照してそのデータからf1,f2の組み合わせを決定したいです
この場合4種類のsubクラスを作るほかやり方はありますか?
978:デフォルトの名無しさん
09/09/10 17:16:35
仮想関数f1だけのクラスと仮想関数f2だけのクラスをそれぞれ作って2パターンずつ実装し、
subのf1, f2は単にそっちを呼び出す
979:デフォルトの名無しさん
09/09/10 17:17:02
>>977
f1 なり f2 の中で条件分岐すればできる
980:デフォルトの名無しさん
09/09/10 17:27:46
>>978
つまりこういうことでしょうか?
class hoge
{
private:
only_f1_impl *f1_;
only_f2_impl *f2_;
public:
void f1(){f1_->f1();}
void f2(){f2_->f2();}
};
メンバ変数へのアクセスで一手間かかりそうですが、よさそうなので使わせてもらいます
ありがとうございました
>>979
条件分岐は後で大変そうなのでちょっと・・・
981:デフォルトの名無しさん
09/09/10 19:56:01
##ってどういう意味か教えてください
982:デフォルトの名無しさん
09/09/10 20:01:49
そのトークンが現れる位置によって意味が異なるので一概に答えることはできない
983:デフォルトの名無しさん
09/09/10 20:38:19
インスタンスがshared_ptr(かweak_ptr)の形でしか生成できなくすることってできる?
984:デフォルトの名無しさん
09/09/10 21:07:22
>>983
コンストラクタをプライベートにして、ファクトリメソッドを書くとか。