私が疑問に思っているのは、基本クラスがある場合、他のすべてのクラスが継承することは、C++では良い考えであるかどうかです。基本的に、C#のオブジェクトと同じインターフェイスがあります。
*ストレートインターフェースとデータ構造を除く
class Object
{
public:
virtual ~Object() {}
virtual std::string toString() const = 0;
virtual Object* copy() const = 0;
virtual void release() = 0;
private:
// This operator overload calls toString() to print it out to the stream.
friend std::ostream& operator<<(std::ostream& output, const Object& object);
};
これは良いことですか、それともクラスをコピーしたり、文字列に変換したりする場合は、個別のインターフェイスを作成する方がよいでしょうか。
例えば
class Copyable
{
public:
virtual ~Copyable() {}
virtual Copyable* copy() const = 0;
};
これについてはまったくわかりませんが、頭を悩ませています。:(