2
誰知道如何將參數從繼承類傳遞給基本類構造函數,它接受各種數量的參數?我的意思是......「線程」類有不同數目的參數初始化構造函數,它表示如下:C++將各種參數傳遞給父類構造函數(線程C++ 11)
template <class Fn, class... Args> explicit thread (Fn&& fn, Args&&... args);
所以...我想創建一個相同的初始化構造函數和構造新的類繼承的類必須通過所有參數基本(線程)類,但不知道如何=)
例如(我想):
class my_thread : public std::thread {
private:
.....
public:
my_thread(WHAT TO WRITE HERE?) : thread (AND HERE) {};
.....
};
void my_func(int arg_1, char arg_2) {
.....
}
int main() {
my_thread mt(my_func, 20, -6);
mt.join();
}
任何解決方案?
您還應該添加my_thread(my_thread&)= delete;以避免意外地將一個非const引用傳遞給my_thread給基類。 – Nevin 2014-09-06 00:54:24
@Nevin所以基本上它與[LWG 2097](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2097)類似的關注點? – 2014-09-06 01:55:33
@ T.C。基本上,是的。這是一個非常普遍的問題。非const的左值引用總是與模板化構造函數(因爲它不需要轉換)相比更好地匹配複製構造函數(這需要非const到const轉換),所以您總是必須小心一點模板構造函數的存在。 – Nevin 2014-09-06 08:01:06