単純なデフォルトコンストラクターについて、cppreferenceから引用された次の段落を理解するのが困難です。私はstackoverflowを検索しましたが、それでも明確な答えが得られませんでした。助けてください。
単純なデフォルトコンストラクターは、アクションを実行しないコンストラクターです。C言語と互換性のあるすべてのデータ型(POD型)は、簡単にデフォルトで構築できます。ただし、Cとは異なり、単純なデフォルトコンストラクターを持つオブジェクトは、std :: mallocで割り当てられたメモリなど、適切に配置されたストレージを単に再解釈することによって作成することはできません。
具体的には、自明なデフォルトコンストラクターが何もしない場合、ストレージを再解釈して、指定されたタイプのオブジェクトがあるふりをすることができないのはなぜですか?これにより発生する可能性のある未定義の動作の例をいくつか教えていただけますか?
*reinterpret_cast<float*>(&someNonFloatObject) = 0.1f;
。C ++にはオブジェクトとオブジェクトの有効期間の概念があり、抽象マシンで指定されます。ストレージからオブジェクトを作成するCPU命令がないからといって、抽象マシンで違いがないということではありません。