4

C++ 標準を読んでいるときに、これstatic_castは一種の直接初期化(C++ 標準 8.5/15) であると読みました。これは、 の間に、対応するオーバーロードされたコンストラクターが呼び出される
ことを意味すると思います。 たとえば、 B から派生した B 型と D 型、および object があります。それから式は式です。static_cast
D dstatic_cast<B>(d)static_cast

標準的な手段として、このstatic_cast式は直接の初期化です。これは type のコンストラクターを呼び出し、 typeBの新しく構築されたオブジェクトを返すということBですか?


編集
別の問題はどうB & b = dですかB b = d?これらの 2 つのステートメントには、コンストラクターが含まれていBますか?

4

3 に答える 3

1

はい、static_castオブジェクト型への (つまり、参照またはポインター型へのキャストではない) は、適切なコンストラクターを使用して一時オブジェクトを作成します。

于 2013-06-23T11:56:16.223 に答える