我有一个名为 FaultsTablemanager 的类,它有两个构造函数:
class FaultsTableManager : public QObject
{
Q_OBJECT
public:
FaultsTableManager(MainWindow* mainW,
QMutex* mu,
QWidget* parentPa,
QTableWidget* tabA,
QRadioButton* sel1,
QRadioButton* sel2,
QQueue<RDIU*>* que,
QTableWidget* tabDe,
QWidget* parentDe,
QLabel* nameLab,
QLabel* timeLab);
FaultsTableManager(MainWindow* mainW,
QMutex* mu,
QWidget* parentPage1,
QTableWidget* tabA,
QRadioButton* sel1,
QRadioButton* sel2,
QList<RDIU*>* list1,
QList<RDIU*>* list2,
QTableWidget* tabDe,
QWidget* parentDe,
QLabel* nameLab,
QLabel* timeLab);
...
}
我想在第二个构造函数中重用第一个构造函数,如下所示:
FaultsTableManager::FaultsTableManager(MainWindow* mainW,
QMutex* mu,
QWidget* parentPa,
QTableWidget *tabA,
QRadioButton *sel1,
QRadioButton *sel2,
QList<RDIU*> *list1,
QList<RDIU*> *list2,
QTableWidget* tabDe,
QWidget* parentDe,
QLabel* nameLab,
QLabel* timeLab)
{
FaultsTableManager(mainW,
mu,
parentPa,
tabA,
sel1,
sel2,
NULL,
tabDe,
parentDe,
nameLab,
timeLab);
// table = tabA;
queue = NULL;
list = list1;
errList = list2;
}
但是如果我留下table = tabA;
注释的代码行,成员table
将不会被初始化(以后不能使用)。
所以我认为第一个构造函数的调用不会对对象进行操作,只会新建另一个未存储在我的构造函数中的对象。
但是我在子类中看到了 base calss 的构造函数的调用,它在同一个对象上运行,这就是我使用这种方法的原因。
那么我可以重用constructor A
inconstructor B
吗?如果不是,它似乎太多余了,我相信有更好的方法来解决这种冗余。