![]() |
1
5
不,“类本身”不是C++中运行时存在的对象——它只是编译时概念。因此,您无法获得指向“类对象”本身的引用或指针,而只能指向实例、函数(包括静态函数)等 做
不过,使用RTTI可以获得一些类似的效果
typeid
关键字提供对
|
![]() |
2
1
不,类在当前版本的C++中不是一流的对象(不像java、python等其他语言)。 |
![]() |
3
1
您想要完成的事情可以通过使用函数指针来完成,如果没有其他方法,那么至少如下所示:
|
![]() |
4
0
你需要的是一个 factory 当您谈到在一个列表中存储不同类型的对象时,我假设您的意思是要存储指向对象的指针,而不是对象本身(否则您将遇到真正的麻烦)。如果要做到这一点而不使用暴力,并且使用多态性,那么这些类最好是从公共基派生的。
|
![]() |
5
0
虽然纯C++在运行时没有类的概念,但有提供这种功能的库。 Qt有一个元对象系统,它提供运行时类反射/内省、动态属性和异步通信。 http://qt-project.org/doc/qt-4.8/qmetaobject.html#details 此外,欧洲核子研究中心的根提供了类似的功能。请参见TObject和TClass。 http://root.cern.ch/drupal/content/reflex 两者都是跨平台和相当工具链兼容。对于更大和更复杂的项目,类似于这样的东西可以消除使用C++与其他语言相比的许多缺点。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |