我有一个类层次结构,基类具有打印类名的功能:
#include <iostream>
using namespace std;
class base
{
public:
virtual void print_name() { cout << typeid(*this).name() << endl; };
};
class derived1 : public base { };
class derived2 : public base { };
int main ()
{
base Base;
Base.print_name();
derived1 Derived1;
Derived1.print_name();
derived2 Derived2;
Derived2.print_name();
}
上面的输出是
class base
class derived1
class derived2
实际上,这取决于平台。
是否有一种或多或少的标准方法可以为每个类“附加”一些唯一名称,因此它可以用于printname()
使所有平台的输出相同(并且独立于对真实类名所做的任何更改)?