1
什麼是具有這樣的一類最巧妙的方法,自動協變類派生
class Object
{
public:
virtual Object* Find(string name);
};
實施,使得其派生類Find()
方法自動返回派生類類型,而無需做這樣的事情:
class DerivedObject : public Object
{
public:
DerivedObject* Find(string name);
};
手動?
附加:實際上在我真正的實現它是一堆static
功能,而不是virtual
的。我有static Object* Object::Find(string name)
和static GameObject* GameObject::Find(string name)
等功能。
我相信你運氣不好 – texasbruce
嗯...甚至不通過模板,不知何故? –
使Find'虛擬的全部意義在於你可以引用'Object'來調用'Find'。但這一定意味着你會期待'Find'返回一個'Object',而不是'DerivedObject'。 – Adam