構築方法に応じて、異なる動作をするクラスを作成することを検討しています。
例:
// #1 - Own an object
class MyClass {
MyClass(std::string const& str) : m_str(str) {}
std::string m_str;
}
// #2 - Share an object (Can be done by pointer as well)
class MyClass {
MyClass(std::string& str) : m_str(str) {}
std::string& m_str;
}
- 同じクラスに両方の動作を持たせることは良い考えですか?
- そのようなクラスを実装する最良の方法は何ですか?