我有一个声明,在我的基类:我怎样才能避免使用类型名称类型
template<class PROTOCOL>
static Packet* serialize(uint packetId, QVariantHash data = QVariantHash());
然后,当我从基类继承,我可以像使用静态方法,以便:
GameProtocol::serialize<GameProtocol>(0); // This works fine
我的问题是,为了使电话GameProtocol::serialize(0)
工作(即没有模板声明),我必须更改什么。
我想保持静态方法,因为它简化了基类的其他区域。我明白这使得C++中无法重写静态方法变得困难,但肯定有一种使用模板魔法的方法。
'GameProtocol'是基类还是派生类? – aschepler