【发布时间】:2012-04-22 04:54:50
【问题描述】:
如果我要从一个类继承,我是否必须定义它的所有虚函数和纯虚函数?
例如,我有一个继承自QAbstractItemModel 的派生类。 QAbstractItemModel 具有以下纯虚函数。如果我的派生类不打算使用index() 和parent() 方法,我需要实现它吗?
//qabstractitemmodel.h
virtual QModelIndex index(int row, int column,
const QModelIndex &parent = QModelIndex()) const = 0;
virtual QModelIndex parent(const QModelIndex &child) const = 0;
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const = 0;
virtual int columnCount(const QModelIndex &parent = QModelIndex()) const = 0;
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const = 0;
【问题讨论】:
-
stackoverflow.com/questions/2089083/… - 是的,如果要实例化派生类,则必须在派生类中定义纯虚函数。
QAbstractItemModel不提供index或parent的定义,因此您需要提供自己的定义。如果它确实提供了实现,你可以从你的子类中调用基类的版本。