C++相談室 part69
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
600:デフォルトの名無しさん 09/05/30 09:47:49 std::vector<double> a; std::vector<double> b = a; この場合って、 コピーコンストラクタが呼ばれるのか、代入演算子が呼ばれるのか コンパイラによって違うんだっけ? どこかに書いてあった気がするんだが忘れてしまった。 601:デフォルトの名無しさん 09/05/30 10:01:08 >>600 必ずコピーコンストラクタ。 602:デフォルトの名無しさん 09/05/30 10:01:48 const_cast…cv修飾子を除去するのに使う。 reinterpret_cast…ポインタと整数型の変換に使う。 dynamic_cast…略。滅多に使わず事足りる。 static_cast…以上3つ以外 っていう認識でいるわ。 603:デフォルトの名無しさん 09/05/30 10:04:10 >>600 カンチガイしているな std::vector<double> a;//デフォルトコンストラクタ std::vector<double> b = a;//コピーコンストラクタ これらは「新しいオブジェクトを作る(construct)」なのだから 呼ばれるのは両方ともconstructor。 そして呼ばれるのは当然 前者はデフォルトコンストラクタ、後者はコピーコンストラクタ。 一方、 std::vector<double> x;//デフォルトコンストラクタ このとき x=b; としたら、これは新しいオブジェクトを作るわけではないのだから 代入演算子operator = が呼ばれる。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5015日前に更新/243 KB
担当:undef