【发布时间】:2021-07-22 18:25:39
【问题描述】:
我以这种方式定义了一个类 JsonElement:
class JsonElement {
public:
string key;
void* value;
template<typename T>
void setValue(T val){
static_cast<T>(value);
this->value=val;
}
};
我的问题很简单:
如何将value 的值转换为任何原始类型?
我不想使用这个解决方案:
template<typename T>
class JsonElement {
public:
string key;
T value;
};
因为我在创建对象时还不知道value 的类型。
有什么帮助吗?
【问题讨论】:
-
请不要添加不相关的标签(如 C 语言标签到您的 C++ 问题)。但也请包含相关标签(如 JSON)。
-
术语旁注:属性是编译器的元信息。您所说的属性在 C++ 领域中称为字段或成员变量。
-
至于你的问题,不能只投,需要做显式转换。对于 JSON,我建议您将所有值存储为 strings 然后使用例如
std::ostringstream提取字符串并将其“转换”为您想要的类型。 -
你为什么使用 C++98?
标签: c++ json class casting attributes