我有一個Visual Studio 2008 C++ 03項目,我想驗證對象是否屬於某種類型。驗證基礎對象是一個特定派生類型
例如:
int main()
{
struct A { virtual ~A() { }; };
struct B : public A { };
struct C : public A { };
A* b = new B();
A* c = new C();
assert(typeof(b) == typeof(B));
assert(typeof(b) != typeof(C));
assert(typeof(c) == typeof(C));
assert(typeof(c) != typeof(B));
assert(typeof(b) != typeof(c));
return 0;
}
有沒有辦法做到這一點在C++ 03?怎麼樣?
'assert(typeid(* b)== typeid(B))'似乎工作。謝謝! – PaulH