次のようなインターフェイスクラスを作成するにはどうすればよいですか?
template<typename file_system_t>
class ireciver_intervace : public QObject
{
public:
typedef typename file_system_t::file_system_item file_system_item;
public Q_SLOTS:
virtual void dataChangeItem(file_system_item *item)=0;
virtual void removeItem(file_system_item *item)=0;
virtual void insertItem(file_system_item *item)=0;
};
および派生クラス
class FileItemModel:public QAbstractItemModel ,public ireciver_intervace<file_system>
{
Q_OBJECT
}
このクラスから継承すると、あいまいな変換について言及するエラーが発生します。これがコンパイラの正しい動作であることは理解していますが、将来のクラスのインターフェイススロットを取得するにはどうすればよいですか?たぶん私はQ_DECLARE_INTERFACE
マクロを使わなければなりませんか?