我有一個聲明,在我的基類:我怎樣才能避免使用類型名稱類型
template<class PROTOCOL>
static Packet* serialize(uint packetId, QVariantHash data = QVariantHash());
然後,當我從基類繼承,我可以像使用靜態方法,以便:
GameProtocol::serialize<GameProtocol>(0); // This works fine
我的問題是,爲了使電話GameProtocol::serialize(0)
工作(即沒有模板聲明),我必須更改什麼。
我想保持靜態方法,因爲它簡化了基類的其他區域。我明白這使得C++中無法重寫靜態方法變得困難,但肯定有一種使用模板魔法的方法。
'GameProtocol'是基類還是派生類? – aschepler