У меня есть набор классов, которые являются ответами из сети. Некоторые классы используют функцию foo, а другие используют bar. Я думал просто о классе, который устанавливает переменную внутри foo и bar. Затем наследуйте те классы, которые имеют только функции foo и bar, без постоянного определения функций в этих классах. Например.
class Foo {
public:
Foo():
foo_(std::string()) {}
virtual ~Foo(){}
const std::string& foo() const { return foo_; }
private:
std::string foo_;
};
class FooReply:
public Foo {
public:
FooReply(){}
explicit FooReply(const std::string& reply):
setFoo(reply) {
}
FooReply(const FooReply& other):
Foo(other) {
}
~FooReply(){}
FooReply& operator=(const FooReply& other) {
Foo::operator=(other);
return *this;
}
};
Было бы лучше сделать это, или я должен просто сделать их интерфейсом и просто переопределить функцию foo ()? Так как я наследую только одну функцию.