必要のないときはポインターを使用しないでください。また、(非常に正当な理由がない限り)所有している生のポインターを使用しないでください。
自動保存期間を使用する:
std::list<char> stuff;
thing object{stuff};
のコンストラクターは、その引数として次のようにthing
なります。std::list<char>
#include <utility> // for std::move
class thing {
public:
explicit thing(std::list<char> stuff_) : stuff(std::move(stuff_)) {}
private:
std::list<char> stuff;
};
このようにすると、スコープ外にthing
なるとのデストラクタが呼び出され、暗黙的にのデストラクタが呼び出されます。多くの優れたC++の本は、これを非常に詳細に説明しています。thing
stuff
Objective-Cとは異なり、C++は参照カウントではなくRAIIを使用します。基本的なルールは次のとおりです。可能な場合は自動保存期間を使用し、生の所有ポインターを避けnew
、正当な理由がない限り使用しないでください。