Empty
次のようなコードを使用して内部状態をクリアするメソッドを C++ オブジェクトに追加することがよくあります。
class Foo
{
private:
int n_;
std::string str_;
public:
Foo() : n_(1234), str_("Hello, world!")
{
}
void Empty()
{
*this = Foo();
}
};
これは、コンストラクターでコードを複製するよりも優れているようです*this = Foo()
が、オブジェクトをクリアしたい場合に一般的なアプローチであるかどうか疑問に思いました。これが私を裏側で噛むのを待っていることに何か問題はありますか? この種のことを達成するための他のより良い方法はありますか?