私は教科書で何かを読んだ後、少し混乱しています。コードについて:これはキャストか建設ですか?
void doSomeWork(const Widget& w)
{
//Fun stuff.
}
doSomeWork(Widget(15));
doSomeWork()
はconst Widget&
パラメータを取ります。教科書Effective C++ IIIは、doSomeWorkに渡す一時的なWidgetオブジェクトを作成すると述べています。
doSomeWork(static_cast<Widget>(15));
両方のバージョンがキャストされているため、最初のものは機能スタイルのCキャストのみです。私はWidget(15)
が1つの整数パラメータをとっているウィジェットのコンストラクタを呼び出すと思っていたでしょう。
この場合、コンストラクタは実行されますか?
@ Constantinius:正確に何が間違っていますか? – AnT
私はあなたの答えを編集しました。 –