0
是否可以實現這樣的行爲?它不必使用繼承,我只想實現具有通用參數傳遞的模板方法設計模式(使用C++模板)。創建一個類方法模板,它將使用稍後實現的函數
class A {
public:
template<typename ...tArgs>
void call(tArgs ...vArgs) {
for (int i = 0; i < 5; ++i)
impl(vArgs...);
}
};
class B : public A {
public:
void impl() {}
void impl(int) {}
};
int main() {
B b;
b.call(); // ok
b.call(1); // ok
b.call(""); // compile error, no method to call inside 'call'
return 0;
}
不太清楚你想要達到的目標。在你的例子中,在編譯時'const char *'沒有重載,所以你得到那個編譯錯誤。 –
[這不是代碼中唯一的錯誤。](http://coliru.stacked-crooked.com/a/6dc7e20197d5f898)這些調用'call'都不起作用,因爲'impl'無法解析。 – WhozCraig
此示例不起作用,沒有上次調用的事件。我只描述了期望的行爲。 – omicronns