文件名称:cppreflect-0.0.1
介绍说明--下载内容均来自于网络,请自行研究使用
c++ 反射机制的实现.Java为什么能够支持Reflection?答案是Java运行时仍然拥有类型信息,它包含了这个类一切:它有哪些字段、哪些方法,各是何种保护级别等等,还有这个类依赖于哪些类。在Java中,类信息以对象的形式存放,这些对象是一种元对象,它们的类型就是Class。拥有了这些信息,无论是动态创建对象还是调用某些方法都是轻而易举的。在C++中,通过RTTI(运行时类型识别),我们也可以知道类的一些信息,但为什么C++中却没有Reflection,原因是类型信息不完整。RTTI这个名字本身就告诉我们,C++的类型信息是用来进行类型识别的,因此,它也不需要其它额外的信息。并不是C++无法做到这一点,而是C++不希望给用户增加额外的负担。有所得,必然有所失,因此,C++放弃了元对象。关于这一点,C++之父Bjarne Stroustrup在他的《C++语言的设计与演化》的14.2.8节中进行了深入的讨论。
(系统自动生成,下载前可以参看下载内容)
下载文件列表
压缩包 : 73462709cppreflect-0.0.1.zip 列表 cppreflect/ cppreflect/cppreflect.sln cppreflect/include/ cppreflect/include/Archive.h cppreflect/include/BuiltinType.h cppreflect/include/BuiltinTypeImpl.h cppreflect/include/ClassType.h cppreflect/include/ClassTypeImpl.h cppreflect/include/Factory.h cppreflect/include/Field.h cppreflect/include/FieldImpl.h cppreflect/include/FLib/ cppreflect/include/FLib/If.h cppreflect/include/FLib/NullType.h cppreflect/include/FLib/Switch.h cppreflect/include/FLib/TypeList.h cppreflect/include/FLib/TypeTraits.h cppreflect/include/MembDataPtr.h cppreflect/include/Method.h cppreflect/include/MethodImpl.h cppreflect/include/ObjHolder.h cppreflect/include/PointerType.h cppreflect/include/Reflect.h cppreflect/include/Serialize.h cppreflect/include/Singleton.h cppreflect/include/StaticReflect.h cppreflect/include/StringType.h cppreflect/include/Type.h cppreflect/include/TypeOf.h cppreflect/include/TypeRegistry.h cppreflect/include/UpCaster.h cppreflect/src/ cppreflect/src/Archive.cpp cppreflect/src/BuiltinType.cpp cppreflect/src/ClassType.cpp cppreflect/src/cppreflect.vcproj cppreflect/src/Field.cpp cppreflect/src/Method.cpp cppreflect/src/PointerType.cpp cppreflect/src/Serialize.cpp cppreflect/src/StringType.cpp cppreflect/src/Type.cpp cppreflect/src/TypeOf.cpp cppreflect/src/TypeRegistry.cpp cppreflect/test/ cppreflect/test/bdb/ cppreflect/test/bdb/bdb.vcproj cppreflect/test/bdb/db.h cppreflect/test/bdb/libdb43d.dll cppreflect/test/bdb/libdb43d.lib cppreflect/test/bdb/main.cpp cppreflect/test/bdb/PersistentHashtable.h cppreflect/test/makedll/ cppreflect/test/makedll/makedll.vcproj cppreflect/test/makedll/test.cpp cppreflect/test/static/ cppreflect/test/static/main.cpp cppreflect/test/static/static.vcproj cppreflect/test/usedll/ cppreflect/test/usedll/main.cpp cppreflect/test/usedll/usedll.vcproj cppreflect/tmp/ cppreflect/tmp/DynClass.cpp cppreflect/tmp/DynClass.h cppreflect/tmp/metaclass.zip cppreflect/tmp/StaticReflect.h cppreflect/tmp/usedll.txt