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