gpt4 book ai didi

C++类指针

转载 作者:行者123 更新时间:2023-11-30 00:41:46 25 4
gpt4 key购买 nike

我知道您可以获得对静态方法的引用,如下所示:

typedef void (*pointer)();
pointer p = &MyClass::MyMethod;

但是有没有办法获得对类本身的引用呢?

编辑:我想将一个类名存储到一个变量中,这样我就可以根据变量的当前值将不同类型的对象实例化到缓冲区或列表中。然后我可以对对象列表执行操作(使用多态性)。

最佳答案

不,“类本身”不是 C++ 运行时存在的对象——它只是一个编译时概念。因此,您无法获得对“类对象”本身的引用或指针,只能获得实例、函数(包括静态函数)等 - 确实在运行时存在的事情。

虽然使用 RTTI,您可以获得一些类似的效果 -- typeid关键字为您提供对 std::type_info 的引用(你需要 #include <typeinfo> 来启用它)它在运行时“代表”有问题的类型。 (您可能还需要特殊的编译器开关来启用此功能,例如 /GR 用于 Microsoft 的 Visual C++)。

这对您来说是否足够好取决于您想要完成的具体目标。想澄清一下吗?

关于C++类指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2841315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com