gpt4 book ai didi

c++ - 存储有关对象类型的信息

转载 作者:太空狗 更新时间:2023-10-29 23:46:35 24 4
gpt4 key购买 nike

我需要在类中存储对象的类型。
这看起来像:

template<class T>
class box
{
private:

type_info type;
T data;
}

我需要存储类型信息的原因很难解释,无论如何我会知道这在 C++ 中是否可行。
当我尝试编译如下指令时:

type=typeid(data);

我收到一个语法错误:
没有匹配 'std::type_info' 的初始化
所以看起来 type_info 没有不带参数的构造函数。那么有可能以某种方式将对象的类型记住到数据中吗?

最佳答案

typeinfo 是不可复制的——它的构造函数和赋值运算符是私有(private)的(在 C++11 中它们被标记为已删除)。您可能正在寻找类似的东西:

template<class T>
class box
{
public:
box() : data(), type(typeid(data))
{
}
private:
T data;
const type_info& type;
};

关于c++ - 存储有关对象类型的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10245964/

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