继承(is-a)和组合(has-a)是不同的概念。继承的好处是可以被传入需要父类的参数。
has-a 配合模板确实也能实现代码复用。
但我觉得是同一件事的两种不同实现方式,没法说优劣。
c++ 继承有个技巧可以避免多继承,不知道大家有没有玩过:
template<typename T>
class FileMixin: public T
{
public:
FileMixin() : size(0), mode(0) {}
public:
QString name;
quint64 size;
QDateTime modified;
QDateTime created;
public:
bool isValid() const { return !name.isEmpty(); }
};
class File: public FileMixin<FileSystemNode> {};
【 在 frosen (WinterSweet) 的大作中提到: 】
: 看了一小半看不下去了
: c++也是在发展的
: 别拿这些老掉牙东西翻来覆去的折腾了
: ...................
--
修改:hgoldfish FROM 112.47.122.*
FROM 112.47.122.*