我有一组对象,比如QVector<ApplicationStates>
,它记录了我软件中最重要的操作。基本上,此对象用于处理重做/撤消操作。应用程序是使用许多委托对象构建的。必须注册的操作存在于很多这些对象中。因此,我总是在表格中的每个代表中传递我的对象集合:
class AWidget : public QWidget{
AWidget(QVector<ApplicationStates>* states, QWidget* parent = nullptr);
...
对我来说似乎很难看。我想到两个解决方案:
QVector
声明为静态全局变量(我读到全局变量是邪恶的)。有人有建议吗? 谢谢你的回答。
答案 0 :(得分:2)
我不时遇到类似的情况,我发现只需将你的矢量包装在类似于&#34; ApplicationContext&#34;的类中。然后将共享指针或引用传递给周围的实例,以节省时间。它有很多好处:
这可能不是所有情况下的最佳解决方案,但我认为在这种情况下它非常接近!