可以说我们有一个类层次结构。在底部我们有Base和Derived顶部。 如何确定对象类,即使它被转换为基类指针。 Base* b = new Derived():
typeid(b).name(); // i want this to tell me that this is actually derived not base object
除了手动实现字符串字段或这样的虚拟get函数之外
我有B级从A. class A
{
};
class B : public A
{
};
我有三个对象继承的对象类型。 A* a = new A();
A* a2 = new B();
B* b = new B();
我想如果检查一个是类型A的对象,a2为B型(未A)的目的,以及b是类型B的对象 我试图输入的比较,但它并没有给我正确的答案。 cout << (typeid(
假设我有一些模板代码执行以下操作: T x = foo();
T y = -x;
现在,如果T是一个非数字型(或不具有执行一元减),编译会因此失败。但如果它是一个unsigned int,unsigned short等,它将成功,并带有警告。所以我想能够做到 T x = foo();
if (/* magic condition */ {
T y = -x;
}
我可以写表