1

大家好,我创建了一个 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_;
};

布莱尔

4

1 回答 1

0

看起来有效。不确定它是否有用,但这对于超级人为的课程来说是一样的。

我建议转换指针并使用 that->name() 而不是引用。他们做同样的事情,但指针会更容易理解

于 2013-06-13T03:35:54.070 回答