我正在尝试将任何对象传递给函数(以检查其类型),我有这样的东西:
void Write(Object obj)
{
cout << typeid(obj).name() << endl;
}
但是我收到错误“Write”未在此范围内声明。 我假设没有“对象”类型
C++ 不是 Java。不存在一个
Object
类是所有其他类都继承自的。您可以使用模板,但您仍然不会在 C++ 中进行相同类型的运行时自省。
template <class Object>
void Write(Object obj) {
std::cout << ... << std::endl;
}
如评论中所述,您可能希望通过常量引用传递参数,而不是值,这将涉及副本。
template <class Object>
void Write(const Object& obj) {
std::cout << ... << std::endl;
}