我已经使用 Java 工作多年了。在那些年里,我广泛(或者可能只是频繁)使用反射,并发现它有用且令人愉快。但8个月前我换了工作,现在Java只是一个记忆,我开始接触C++。所以现在我想知道C++中是否有反射机制。我读过有关 RTTI 的内容,但我觉得它绝不是 Java(或其他语言)反射的力量。我开始认为在 C++ 中没有办法做到这一点。我错了吗?
由于 C++ 标准不涵盖“元数据”这样的概念,因此除了您已经提到的 RTTI 之外,没有可移植的(就此而言,跨不同编译器和平台)运行时反射方法。
在 C++ 中,还存在编译时反射的可能性(想想boost::type_traits
and boost::type_of
),但与 Nemerle 或 LISP 相比,它也有局限性。
大多数主要框架(MFC、Qt 等)允许您在运行时提取元信息,但它们需要各种特殊注释才能工作(请参阅运行时_类 http://msdn.microsoft.com/en-us/library/a3tc49sy(VS.80).aspx等人为例)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)