C++
文章平均质量分 59
李小乾
这个作者很懒,什么都没留下…
展开
-
利用 c++模板 类型 推导思想,实现最简单的 判断两个类型 是否一样的 方法
第二个 结构体 is__same 是 第一个 的 特化 版本,即当<> 中两个 类型 一致 的 情况,会 根据 类型 推导 原则 ,推导 为 使用 第二个 特化 版本。代码 比较 简单,应该 很容易 看明白。template<typename T1,typename T2>struct is__same{ operator bool() ...原创 2017-12-19 09:56:27 · 2723 阅读 · 0 评论 -
C++ 类 难点总结
1、虚拟基类在一个虚函数的声明语句的分号前加上 =0;就可以将一个虚函数变成纯虚函数,其中,=0只能出现在类内部的虚函数声明语句处。纯虚函数只用声明,而不用定义,其存在就是为了提供接口,含有纯虚函数的类是抽象基类。我们不能直接创建一个抽象基类的对象,但可以创建其指针或者引用。值得注意的是,你也可以为纯虚函数提供定义,不过函数体必须定义在类的外部。但此时哪怕在外部定义了,也是纯虚函数,不能...原创 2019-02-27 11:44:59 · 1107 阅读 · 0 评论 -
VS2010 字符串函数源码汇总
// strcpy(p, p1) 复制字符串 源码在 strcat.c 中// strncpy(p, p1, n) 复制指定长度字符串 strncpy.c// strcat(p, p1) 附加字符串 strcat.c// strncat(p, p1, n) 附加指定长度字符串 strncat.c// strlen(p) 取字符串长度 strlen.c// st...原创 2019-08-04 00:28:52 · 1041 阅读 · 0 评论 -
C++类型转换 const_cast static_cast dynamic_cast reinterpret_cast
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。const_cast,字面上理解就是去const属性。static_cast,命名上理解是静态类型转换。如int转换成char。dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类型转换。rein...原创 2019-08-20 17:50:23 · 466 阅读 · 0 评论 -
VS 2010 shared_ptr 源码分析
类结构框架下面这张图来自于网络,已不知原作者。这张图表明了shared_ptr类结构图_Ref_count_base是在shared_ptr创建的时候new出来的。_Ref_count_base有3个子类,分别对应shared_ptr构造时的3种形式。在shared_ptr的实现中,会根据调用的shared_ptr构造函数的不同,使用不同类型的_Ref_count_base创建。_Re...原创 2019-08-20 17:32:05 · 458 阅读 · 0 评论