2013-06-12 7 views
1

Привет всем Я создал класс mixin (супер надуманный) для распечатки элементов T (некоторого типа T), которые имеют метод под названием name().C++ Mixins - Это правильный способ реализации?

Мне интересно, считается ли это правильным способом реализации на 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_; 
}; 

Blair

ответ

0

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^