トップページ > プログラム > 2016年05月25日 > 8+OpaV010

書き込み順位&時間帯一覧

31 位/196 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000110000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん (ワッチョイ 7bf8-xFql)
C++相談室 part125 [無断転載禁止]©2ch.net

書き込みレス一覧

C++相談室 part125 [無断転載禁止]©2ch.net
30 :デフォルトの名無しさん (ワッチョイ 7bf8-xFql)[sage]:2016/05/25(水) 16:17:16.51 ID:8+OpaV010
WindowsのcoutのエンコーディングってUCS2か何かじゃ無かったっけ。
文字コードに互換性が無ければ文字化けする。
C++相談室 part125 [無断転載禁止]©2ch.net
34 :デフォルトの名無しさん (ワッチョイ 7bf8-xFql)[sage]:2016/05/25(水) 17:28:40.96 ID:8+OpaV010
>>31
DがCを変更しないなら、const修飾子を付けることは出来る。
class D {
const C& _c;
public: D(const C& c) : _c(c) {}
};

CがDに変更されうり、かつ、Cは一度Dを生成したら二度と使われないのであれば、move semanticsを使うことも出来る
class D {
C _c;
public: D(C&& c) : _c(std::move(c)) {}
};

CがDに変更されうる上にCが複数のDを生成するのであれば、CをDのfriendに指定して、Dのprivate constructorをCから呼ぶ事で解決できる
class D;
class C {
std::shared_ptr<C> self;
public:
C() : self(std::shared_ptr<C>(this)) { return; }
D* make_D();
};
class D {
friend C; std::shared_ptr<C> _c;
explicit D(const std::shared_ptr<C>& c) : _c(c) { return; }
};
D* C::make_D() { return new D(self); }

後なんかあったっけ?


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。