gpt4 book ai didi

c++ - 我怎么能转换成一个变量类名?

转载 作者:行者123 更新时间:2023-11-30 03:04:42 25 4
gpt4 key购买 nike

我有一些类和一个指针,哪个类是void*,指向其中一个类。

我还在一个字符串变量中有该类的名称,我想将该 void 指针转换为该类。

我想做这样的事情:

    string className;

className = "int";

(className *) voidPointer;

有什么办法吗??

提前致谢!

最佳答案

这不可能按照您尝试的方式进行。

不过,我觉得boost::any可以在这里帮助你:

boost::any obj;
if (className == "int")
obj = (int)voidPointer;
else if (className == "short")
obj = (short)voidPointer;

//from now you can call obj.type() to know the type of value obj holds
//for example
if(obj.type() == typeid(int))
{
int value = boost::any_cast<int>(obj);
std::cout <<"Stored value is int = " << value << std::endl;
}

也就是使用boost::any_cast获取存储在 boost::any 对象中的值类型。

关于c++ - 我怎么能转换成一个变量类名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8447678/

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