C++ Mixins - это правильный способ реализации?

Привет всем, я создал класс mixin (супер хитрый) для распечатки элементов T (некоторого типа T), у которых есть метод name().

Мне интересно, если это считается правильным способом реализации в C++?

Любые комментарии приветствуются.

template<class T>
struct name_method_printer_to_console_mixin{
    void print() const{
        auto& that = static_cast<T const&>(*this);
        cout << "Mixin printing name which is: " << that.name() << endl;
    }
};

class customer : public name_method_printer_to_console_mixin<customer>{
public:
    customer(){}
    customer(string const &name) : name_(name){}
    string const & name() const{
        return name_;
    }
private:
    string name_;
};

блэр

1 ответ

Выглядит действительным Не уверен, что это полезно, но это в порядке вещей для надуманного курса.

Я бы предложил привести указатель и использовать это->name() вместо ссылок. Они делают то же самое, но указатель будет легче понять

Другие вопросы по тегам