2017-09-02 2 views
-3

正しい構文は何ですか?そして、そのような技法を練習するときには何を注意すべきですか?クラスコンストラクタのメモリ割り当てについては、式を単純化するためにイニシャライザリストを使用するのは安全ですか?

+3

ポストにあなたがについて尋ねているかを示すいくつかのコードを。 –

+0

これは安全に行うことができます。 – user0042

+0

この質問ではあまり努力していません... – Phil1970

答えて

0

...正しい構文ですか?

class Foo { 
    Bar* bar_; 
public: 
    Foo() : bar_(new Bar()) {} 
}; 

そして、何そのような技術を練習するとき、私は注意を払う必要があります。

あなたはより良い方法はしかし、スマートポインタを使用することであるdelete適切

 ~Foo() { delete bar_; } 

を呼び出すために確保すべきである:

class Foo { 
    std::unique_ptr<Bar> bar_; 
public: 
    Foo() : bar_(std::make_unique<Bar>()) {} 
}; 
+0

私は実際の例を変更するためにダイナミックメモリを使用しようとしていましたが、正しい構文についてはあまりよく分からないので失われました。そして、それを継承と組み合わせようとすると、もっと混乱します。 –

関連する問題