c++ - C++ 中的( self )反射是否可能?

标签 c++ reflection

不使用 macros or Boost libraries , 是否可以在 C++ 中遍历类的自己的成员?

我知道“反射”在 C++ 中不可能像在 Java、C# 和 Go 中一样(令人心碎),但我不知道这是否仅适用于查看其他类属性的类,或者是否也适用对他们自己。

我希望一些关心它自己的业务的类能够在运行时以某种方式看到它自己的属性;这可能吗?

最佳答案

诺诺诺。 C++是静态类型编译语言;它不需要在运行时知道成员的名称,因为在运行时的所有访问都是通过地址完成的;这使得成员名称变得无用,无法证明在可执行文件中是合理的。您无法访问不存在的内容。

在运行时知道成员名称的唯一方法是包含在编译过程中显式存储名称的代码 - 即宏。

关于c++ - C++ 中的( self )反射是否可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53492937/

相关文章:

c++ - 在容器中存储值

c++ - 按名称访问数组元素

c++ - 如何从 std::map 中过滤项目?

c# - 如何使用反射在静态类中查找私有(private)静态方法?

c# - 我可以将 Activator.CreateInstance 与接口(interface)一起使用吗?

java - boolean.isInstance(true) 是假的?

c# - msgpack 可以在 C# 中打包用户定义的对象,将包发送到 C++ 应用程序,然后在其中解包吗?

c++ - 如何将代码与 virtualbox 集成?

java - 如何在类路径中找到接口(interface)的所有实现?

java - Java中的反射和类加载器