我將以示例的形式對此進行描述,以使其更加清晰。C++類標識問題
說我有一個動物矢量,我想通過數組來看看元素是否是狗或貓?
class Dog: public Animal{/*...*/};
class Cat: public Animal{/*...*/};
int main()
{
vector<Animal*> stuff;
//cramming the dogs and cats in...
for(/*all elements in stuff*/)
//Something to the effect of: if(stuff[i].getClass()==Dog) {/*do something*/}
}
我希望這是明確的。我知道typeid,但我沒有任何Dog對象來比較它,如果可以,我想避免創建一個Dog對象。
有沒有辦法做到這一點?提前致謝。
你不能這樣做,它需要是一個矢量或動物*,而不是動物。 – 2008-12-02 04:48:21