我正在嘗試創建一個函數數組,以便稍後可以使用它循環顯示在用戶界面上的按鈕數量。無法創建函數陣列
這裏是我的.HPP片段:
public slots:
void coin5C();
void coin10C();
void coin20C();
void coin50C();
void coin1EUR();
void (connections[5])() = { coin5C, coin10C, coin20C, coin50C, coin1EUR };
最後一行應該把他們都在一個數組,但我似乎得到一個錯誤
Declaration of 'connections' as array of functions
在我的.cpp這是我想要如何使用我的陣列功能(最後一行):
for(int i = 0; i < NumButtons; i++) {
// Error checking
if(btnNames[i] == "") {
btnNames[i] = "btnNames " + QString::number(i);
}
buttons[i] = new QPushButton(btnNames[i]);
layout1->addWidget(buttons[i]);
connect(buttons[i], SIGNAL(released()), this, SLOT(connections[i]()));
}
如果我使用void (*connections[5])() = { coin5C, coin10C, coin20C, coin50C, coin1EUR };
我得到的錯誤:
cannot convert 'MainWindow::coin5C' from type 'void (MainWindow::)()' to type 'void (*)()'
void (*connections[5])() = { coin5C, coin10C, coin20C, coin50C, coin1EUR };
我在做什麼錯?
謝謝。
幫助閱讀:[指向成員函數(https://isocpp.org/wiki/faq/pointers-to-members) – user4581301
'插槽:'不是標準C++的一部分,您使用的東西像QT? (如果是這樣,那麼將問題標記爲QT會有所幫助) –