作爲一個簡單的例子,如果我有類如何最好地實現一個模板類與互相依賴
template <class T, class U> class ProcessEvent
{
public:
ProcessEvent(T* t) : var1(t) { var2 = new U; }
Process() { var2->Process(var1); }
private:
T* var1;
U* var2;
};
class Foo
{
/*data*/
};
class FooProcessor
{
void Process(Foo* foo) {/*functionality*/}
};
class Bar
{
/*data*/
};
class BarProcessor
{
void Process(Bar* bar) {/*functionality*/}
};
類型,以便類的processEvent可以有兩套不同的模板類型,
ProcessEvent<Foo, FooProcessor>
ProcessEvent<Bar, BarProcessor>
但是,第二個模板類型FooProcessor和BarProcessor直接由第一模板類型隱含的,是實現細節,用戶不關心。我的目標是具有與上述相同的功能,但是ProcessEvent只接受一個模板參數Foo或Bar。除了通過ProcessEvent的專業化,這可以做到嗎?
'U * = new()'和'U-> Process(T)'在語法上是無效的,你是什麼意思? – 2012-02-08 16:10:38
@Matt對不起,我認爲我解決了它 – user334066 2012-02-08 16:16:21