gpt4 book ai didi

c++ - typeid 和 type_info 类

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

namespace std {
class type_info
{
public:
virtual ~type_info(); //type_info can serve as a base class
// enable comparison
bool operator==(const type_info& rhs ) const;
// return !( *this == rhs)
bool operator!=(const type_info& rhs ) const;
bool before(const type_info& rhs ) const; // ordering
//return a C-string containing the type's name
const char* name() const;
private:
//objects of this type cannot be copied
type_info(const type_info& rhs );
type_info& operator=(const type_info& rhs);
}; //type_info
}

在 type_info 类的声明中,我找不到任何数据成员。那么构造或析构的是什么??里面也没有声明typeid,那么type_info对象是怎么访问的呢?
以上表示不完整? 请说出type_info中数据成员的类型

最佳答案

看起来您正在查看 C++03 中 typeinfo 的公共(public)接口(interface)。该标准不限制实现将成员添加到标准类(只要名称来自为实现保留的那些名称)以使事情正常进行。

我目前使用的std::typeinfo实现中有一个private成员const char* __name,用于根据需求实现public成员函数的标准。

ISO/IEC 14882:2011 17.5.2.3 私有(private)成员 [objects.within.classes]/1:

Clauses 18 through 30 and Annex D do not specify the representation of classes, and intentionally omit specification of class members (9.2). An implementation may define static or non-static class members, or both, as needed to implement the semantics of the member functions specified in Clauses 18 through 30 and Annex D.

类似的措辞出现在C++03 17.3.2.3中。

关于c++ - typeid 和 type_info 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9248421/

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