Привет всем, я создал класс 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_;
};
блэр
Выглядит действительным Не уверен, что это полезно, но это все равно что придуманный курс.
Я бы предложил привести указатель и использовать это-> name () вместо ссылок. Они делают то же самое, но указатель будет легче понять
Других решений пока нет …