我开始了解 C++ 中的运行时类型信息。这可以通过 c++ 中的 typeid 关键字来完成。
int main()
{
//these two where user-defined class
Complex x;
Point3D y;
const type_info& s = typeid(x);
cout<<typeid(y).name()<<endl; //works...(1)
cout<<s.name()<<endl; //works...(2)
Complex * tp = new s[10]; //does not work...(3)
}
正如代码中所标记的,我成功地打印出 (1) 和 (2) 中的数据对象类型。
现在我希望通过使用 type_info/typeid 来分配内存。有人可以这样做吗?有没有可能。我没有任何虚拟功能。
这样的壮举能否通过任何其他方式完成。我不想使用虚函数,因为它对代码向量化有负面影响。