Реализуйте класс только с одной функцией - PullRequest
0 голосов
/ 18 декабря 2011

У меня есть набор классов, которые являются ответами из сети. Некоторые классы используют функцию 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 ()? Так как я наследую только одну функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...