11
如何在一般情況下在以下代碼中實現抽象基類。代碼從我正在處理的庫中簡化。所以int和double的顯式實現不是一個選項。在抽象類中使用抽象類時如何實現抽象方法
template <typename T>
struct Foo
{
virtual void send(T t) = 0;
};
template <typename...T>
struct Bar : Foo<T>...
{
void send(T t) override { // does not compile because
// abstract method not implemented
}
};
int main() {
// example usage
Bar<int, double> b;
b.send(1);
b.send(2.3);
}
非常感謝提前。
編輯:增加了虛擬抽象方法。
嘿,你能告訴我有什麼區別之間:'foo2的 ...'和'foo2的'(括號內點外支架對) –
Brandon
@Brandon - 是完全不同的事情;如果你寫'Foo2',你用'sizeof ...(T)'模板參數聲明一個基類,'Foo2 ';如果你寫'Foo2 ...',你聲明'sizeof ...(T)'基類,'Foo2 ,Foo2 ,Foo2 /* etc * /',每個都有一個模板參數 –
max66