C++ - ライブラリの配置によって予約されているこの具体的な実装は何ですか?
怪我咯
怪我咯 2017-05-16 13:30:16
0
1
799
リーリー

演算子 new のさまざまな形式を学習するときに遭遇しました (C++ 入門書ではあまり説明されていませんでした)が、この関数呼び出しを使用して実装する方法など、この関数の役割を理解できませんでした placement new的构造效果, 比如这样two *abc = new(m) two(10);(この構造は見たのですが)実際、上記の関数も呼び出されます)、およびテスト例は次のとおりです (問題はコメントされています):

リーリー

ここで問題をさらに単純化して詳しく説明します:

  1. この関数が構築の効果を達成できる理由は、 two *abc = new(m) two(10);为例, 我没有(或者说不知道怎么在step into进去)能看清具体实现, 虽然我知道抽象出来就是实现了就地构造了two(10)このオブジェクトです。

  2. 同じ効果を得るためにmain()函数注释处这样直接调用函数的做法来实现就地构造, 我该如何修改参数和传入参数实现 two *abc = new(m) two(10);を使用したらどうなりますか?

追記:

  • 私の最初の推測の 1 つは、渡される _Where ポインターは既に構築されたオブジェクトへのポインターであるべきだということでしたが、この方法で実装する場合は、既にオブジェクトが存在する必要があり、これは placement new に反するはずです。

怪我咯
怪我咯

走同样的路,发现不同的人生

全員に返信(1)
伊谢尔伦

/q/10... @felix Dashi がこの質問に対してすでに回答しています。私はそれを考えて関連コンテンツを検索します

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート