【发布时间】:2015-04-21 04:15:32
【问题描述】:
我有一个基本模型,我在其中实现了 QAbstractItemModel 的虚拟成员。然后,我根据需要通过派生具有具体细节的新类在项目中使用我的基本模型。
class BaseModel : public QAbstractItemModel{
public:
...
protected:
QList<BaseItem*> list;
}
class DerivedModel : public BaseModel{
public:
...
}
class DerivedItem : public BaseItem{
public:
...
}
我的派生模型使用DerivedItem 对象来存储具有BaseItem 没有的一些细节的数据。它们存储在list。 BaseModel 中的方法也使用 list 中的对象。
我的问题是因为这个我每次在派生模型中从list 访问对象时都必须键入 cast。而且我不能使用像foreach 这样的宏。
在这种情况下,我是否可以使用任何提示或技巧,使我能够使用宏并防止我每次从 list 访问项目时进行类型转换。或者在制作一个公共类以供以后派生时是否有另一种方法(更好的做法)。
谢谢,
【问题讨论】:
标签: c++ qt polymorphism downcast qlist