c++ dynamic_cast 底层实现
底层实现
dynamic_cast 的底层实现涉及两个主要的机制:虚函数表(vtable)和运行时类型信息(RTTI)。
1. 虚函数表(vtable):
虚函数表是用于实现多态性的一种机制。它是一个存储在对象内存布局中的特殊表格,用于存储虚函数的地址。每个具有虚函数的类都有一个对应的虚函数表。虚函数表中的每个条目对应一个虚函数,包含了函数的地址。派生类的虚函数表会继承基类的虚函数表,并可以在其中添加或重写虚函数。
2. 运行时类型信息(RTTI):
运行时类型信息是用于在运行时获取对象的实际类型的机制。C++ 中的 RTTI 通过 type_info 类型和 typeid 运算符来实现。每个具有虚函数的类都会自动生成一个与之对应的 type_info 对象,其中包含了类的名称和...
stl "vector" 特殊优化
vector 特性
std::vector 是 std::vector 对类型 bool 为空间提效的特化。
std::vector 中对空间提效的行为(以及它是否有优化)是实现定义的。一种潜在优化涉及到 vector 的元素联合,使得每个元素占用一个单独的位,而非 sizeof(bool) 字节。
std::vector 表现类似 std::vector ,但为节省空间,它:
不必作为连续数组存储元素
暴露类 std::vector::reference 为访问单个位的方法。尤其是,此类型的类为 operator[] 以值返回。
不使用 std::allocator_traits::construct 构造位值。
不保证同一容器中的不同元素能由不同线程同时修改。
api文...
共计 90 篇文章,12 页。