![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 63
tsfg
这个作者很懒,什么都没留下…
展开
-
C++11的std::function和std::bind用法
C++11的std::function和std::bind用法。原创 2023-10-25 09:03:13 · 157 阅读 · 0 评论 -
C++11智能指针之unique_ptr
文章目录unique_ptr创建接口使用哪一种智能指针?unique_ptrunique_ptr也是对auto_ptr的替换。unique_ptr遵循着独占语义。在任何时间点,资源只能唯一地被一个unique_ptr占有。当unique_ptr离开作用域,所包含的资源被释放。如果资源被其它资源重写了,之前拥有的资源将被释放。所以它保证了他所关联的资源总是能被释放。创建unique_ptr的创建方法和shared_ptr一样,除非创建一个指向数组类型的unique_ptr。unique_ptr<原创 2020-06-13 21:10:25 · 847 阅读 · 0 评论 -
C++11智能指针之weak_ptr
文章目录前言,接上节:Weak_Ptr创建现在让我们见识一下`weak_ptr`如何解决循环引用问题:前言,接上节:为了解决循环引用,C++提供了另外一种智能指针:weak_ptrWeak_Ptrweak_ptr 拥有共享语义(sharing semantics)和不包含语义(not owning semantics)。这意味着,weak_ptr可以共享shared_ptr持有的资源。所以可以从一个包含资源的shared_ptr创建weak_ptr。weak_ptr不支持普通指针包含的*,->原创 2020-06-13 17:30:24 · 598 阅读 · 0 评论 -
C++11智能指针之shared_ptr
文章目录shared_ptr创建:析构接口问题1:问题2总结:shared_ptr第一种智能指针是shared_ptr,它有一个叫做共享所有权(sharedownership)的概念。shared_ptr的目标非常简单:多个指针可以同时指向一个对象,当最后一个shared_ptr离开作用域时,内存才会自动释放。创建:void main( ){ shared_ptr<int> sptr1( new int );}使用make_shared宏来加速创建的过程。因为shared_pt原创 2020-06-13 16:08:44 · 1928 阅读 · 0 评论 -
C++11智能指针之98 auto_ptr
文章目录前言**C++98提供了第一种智能指针:auto_ptr**问题1:问题2问题3:C++11智能指针前言本文参考:https://www.jianshu.com/p/e4919f1c3a28普通指针的问题 和 什么是智能指针,请参考我之前写的博客:https://blog.csdn.net/QQ1402369668/article/details/104569772C++98提供了第一种智能指针:auto_ptrclass Test{ public: Test(int原创 2020-06-13 11:25:03 · 469 阅读 · 0 评论 -
专题四经典问题解析
文章目录历史的痕迹小插曲:在类中可以定义其它的新类型在类模板中定义新的类型在函数模板中 使用类模板的内部类型改为typename坑爹的面试题小插曲C++编译器匹配示例函数模板与 可变参数函数 的化学反应解决方案一解决方案二历史的痕迹你可能会看到类似下面的模板定义#include <cstdlib>#include <iostream>using namespac...原创 2020-03-23 15:00:39 · 212 阅读 · 0 评论 -
专题三经典问题解析
文章目录当多态遇见对象数组会发生什么?为什么没有讲解多重继承?多继承复杂性示例C++中对多继承二义性的解决方案C++是否有Java中接口的概念?接口使用示例当多态遇见对象数组会发生什么?#include <cstdlib>#include <iostream>using namespace std;class Parent{protected: i...原创 2020-03-19 21:40:05 · 194 阅读 · 0 评论 -
专题二经典问题解析
文章目录malloc与free和new与delete有什么区别?误区 编译器对构造函数的调用老版编译器的行为:你会怎么做?“剥夺”编译器对构造函数的调用尝试 explicit类的静态成员能用来干嘛呢?代码实例:单例模式的实现无状态函数与状态函数如何解决第二种的缺点那? 函数对象的实现 操作符重载malloc与free和new与delete有什么区别?#include <cstdlib&g...原创 2020-03-17 07:04:35 · 369 阅读 · 0 评论 -
专题一经典问题解析
文章目录const和引用的疑惑1.2.volatile与const结合3.int y = 0; const int z = y; z是一个只读变量4.用char变量给int引用初始化,将得到一个新的只读变量什么是符号表?引用与指针的疑惑如何理解“引用的本质就是指针常量”?重载的疑惑C方式编译的疑惑?const和引用的疑惑1.#include <stdio.h> int mai...原创 2020-03-08 10:45:37 · 223 阅读 · 0 评论 -
C++之动态类型识别
文章目录动态类型动态类型识别利用多态进行动态类型识别完整代码新的关键字dynamic_castC++中是否可以动态得到任意变量的类型信息呢?完整代码小结动态类型问题:下面的程序有问题吗?class Parent{public: virtual ~Parent(){ }};class Child: public Parent{ };void test...原创 2020-03-04 10:38:10 · 1549 阅读 · 0 评论 -
异常处理(下)
文章目录深入异常处理在catch语句块中仍然可以抛出异常在catch(…) 语句块中,可以通过不带参数的 throw语 句抛出捕获的异常异常与对象构造函数中的异常示例工程中的异常应用异常的工程应用初探函数级try语法小结深入异常处理问题:有时在工程中只关心是否产生 了异常,而不关心具体的异常类型,C++语言可以做到吗?C++中的 catch语句可以使用…捕获所有的异常#include &l...原创 2020-03-03 15:00:49 · 188 阅读 · 0 评论 -
异常处理(上)
文章目录异常处理初探C方式的解决方案程序中会出现大量的处理异常的代码完整代码C++中的异常处理实例代码小结:异常处理初探所有的代码都有可能不按照预定义的方式运行典型问题一:double Div(double a, double b) { return a/b;}double Add(double a, double b) { return a+b;}double Minus...原创 2020-03-02 08:50:10 · 338 阅读 · 0 评论 -
类模板(下)
文章目录类模板的局部特化类模板可以定义多个类型参数类模板可以被局部特化思考:为什么需要特化,而不重新定义新类非类型模板参数函数模板的模板参数可以是普通数值代码实例 非类型模板参数与特化工程问题:内存越界的问题常发生于数组的使用中内存泄漏和内存多次释放常发生于指针的使用过程中智能指针代码实例 智能指针的创建与使用小结:类模板的局部特化类模板可以定义多个类型参数#include <cstd...原创 2020-02-29 10:15:48 · 290 阅读 · 0 评论 -
类模板(上)
文章目录类是C++的核心,那是否能够将模板的思想应用于类呢?类模板代码实例类模板的工程应用实例代码 数组类加入类模板类模板的特化完整代码类是C++的核心,那是否能够将模板的思想应用于类呢?类模板一些类主要用于存储和组织数据元素如:数组类,链表类、Stack类、Queue类等等C++中可以将模板的思想应用于类,使得类可以不关注具体所操作的数据类型,而只关注类所需要实现的功能。C++中的类...原创 2020-02-26 10:00:11 · 206 阅读 · 0 评论 -
函数模板
文章目录思考:C++中交换两个变量的值泛型编程代码实例 泛型编程初体验代码实例2 泛型排序算法函数模板的深入理解函数模板与重载多参数函数模板C++编译器的不完美解决方案小结思考:C++中交换两个变量的值void Swap(int& a, int& b){ int t = a; a = b; b = t;}void Swap(float& a, fl...原创 2020-02-25 10:27:19 · 186 阅读 · 0 评论 -
继承与多态(下)
文章目录重写与重载完整代码:重载与重写的区别虚函数深入理解代码实例:构造函数中的“多态”(无法实现)纯虚函数Shape类的不合理完整代码小结重写与重载重载和重写有什么区别?什么时候是重载,什么时候是重写?#include <cstdlib>#include <iostream>using namespace std;class Parent{public:...原创 2020-02-24 15:33:24 · 219 阅读 · 0 评论 -
继承与多态(上)
文章目录函数重写当函数重写遇上赋值兼容性原则问题所在编译器角度分析问题:编译器的做法是我们期望的吗?函数重写实例 江湖恩怨多态的本质小结函数重写问题:如果子类定义了与父类中原型相同的函数会发生什么?函数重写在子类中定义与父类中原型相同的函数函数重写只发生在父类与子类之间#include <cstdlib>#include <iostream>using n...原创 2020-02-24 09:57:54 · 173 阅读 · 0 评论 -
继承中的构造与析构
赋值兼容性原则子类对象可以当作父类对象使用子类对象可以直接赋值给父类对象子类对象可以直接初始化父类对象父类指针可以直接指向子类对象父类引用可以直接引用子类对象子类是就是特殊的父类!!!#include <cstdlib>#include <iostream>using namespace std;class Parent{protected: ...原创 2020-02-23 14:59:40 · 303 阅读 · 0 评论 -
C++之继承
文章目录继承的概念深入了解继承小插曲新的关键字如何恰当的使用public,protected和private为成员声明访问级别?继承与访问级别小结继承的概念面向对象中的继承指类之间的父子关系子类拥有父类的所有成员变量和成员函数子类就是一种特殊的父类子类对象可以当作父类对象使用子类可以拥有父类没有的方法和属性深入了解继承C++中的访问级别与继承继承时的访问级别设定会影响到成员的访问...原创 2020-02-22 21:51:15 · 125 阅读 · 0 评论 -
操作符重载(下)
文章目录类的成员函数是否可以作为操作符重载的函数?用成员函数重载的操作符什么时候使用全局函数重载操作符?什么时候使用成员函数重载操作符?重载=, []操作符有什么用哪?重载[]操作符重载=操作符重载=操作符数组类:最终完整代码C++编译器会为每个类提供默认的赋值操作符=++操作符重载不要重载&&和||,为什么?小结类的成员函数是否可以作为操作符重载的函数?通过operator关...原创 2020-02-21 21:51:48 · 209 阅读 · 0 评论 -
操作符重载(上)
文章目录使用C++标准库Cin和CoutC++做了什么?对于<<和>>第一步:第二步: add()函数第三步:C++中操作符重载的本质用operator关键字扩展的操作符可以用于类吗?小插曲:友元<<运算符重载第4步:最终的代码小结:使用C++标准库C++标准库并不是C++语言的一部分C++标准库是由C++语言编写而成的类库和函数的集合C++标准库中定义...原创 2020-02-21 14:33:13 · 413 阅读 · 0 评论 -
类的静态成员
文章目录成员变量的回顾新的需求统计类在程序运行期间有多少个对象同时存在类的静态成员用法:静态成员的应用静态成员函数和普通成员函数有什么区别?C++对象模型初探代码实例:静态成员函数与普通成员函数的区别成员变量的回顾通过对象名能够访问public成员变量每个对象都可以有只属于自己的成员变量成员变量不能在对象之间共享新的需求统计类在程序运行期间有多少个对象同时存在保证程序的安全性,并随...原创 2020-02-21 10:49:54 · 274 阅读 · 0 评论 -
C++之构造与析构(下)
文章目录C++中的对象组合C++中提供了初始化列表对成员变量进行初始化小插曲 类中的const成员初始化与赋值不同对象的销毁一般的解决方案C++中的析构函数Array类的进化构造函数与析构函数的调用秩序当类中有成员变量是其它类的对象时析构函数的调用秩序与对应的构造函数调用秩序相反类的内部可以直接调用类的构造函数吗?C++中的对象组合C++中的类可以使用其它类定义成员变量问题:如何给对象成员进...原创 2020-02-20 16:17:34 · 214 阅读 · 0 评论 -
C++之构造与析构(上)
文章目录对象的初始化解决方案忘记调用initialize()函数的后果C++中的构造函数构造函数的调用成员函数的重载:两个特殊的构造函数拷贝构造函数的行为方式实例代码:数组类的创建解决方案:自己写拷贝构造函数对象的初始化生活中存在的对象都是被初始化后才上市的初始状态是对象普遍存在的一个状态的问题:如何给对象进行初始化?一般而言所有的对象都需要一个确定的初始状态解决方案为每个类都提供一...原创 2020-02-20 10:15:14 · 149 阅读 · 0 评论 -
C++之类中的封装
文章目录生活中的封装类的封装封装的基本概念C++中类的封装实例:类成员的访问属性类成员的作用域struct变得越来越不像它在C中的样子了!!!类的真正形态class和struct有什么区别?实例代码:一个运算类的实现运算类的改进小结生活中的封装学习电脑组装是否需要学习显示器,键盘,鼠标,主板,内存等部件的设计与制造?类的封装类通常分为以下两个部分类的实现细节类的使用方式当使用类时,...原创 2020-02-19 16:32:36 · 378 阅读 · 0 评论 -
C++之新的关键字
文章目录C++中的动态内存分配new和malloc的区别C++中的命名空间使用命名空间强制类型转换C语言中的强制类型转换C语言方式强制类型转换存在的问题C++中的强制类型转换C++将强制类型转换分为4种不同的类型static_castconst_castreinterpret_castdynamic_castC++中的动态内存分配C++中通过new关键字进行动态内存申请C++中的动态内存申请...原创 2020-02-16 12:08:25 · 379 阅读 · 0 评论 -
C++之函数的升级(下)
文章目录重载C++中的函数重载当函数的默认参数遇上函数重载会发生什么?编译器调用重载函数的准则通过默认类型转换匹配实参函数重载的注意事项函数重载和函数指针C++和C的相互调用C++调用C编写的函数:统一的解决方案:重载同一个标识符在不同的上下文有不同的意义如:“洗”和不同的词汇搭配后有不同的含义洗衣服,洗脸,洗脑,洗马桶, 。。。“play”和不同的单词搭配后有不同的含义play c...原创 2020-02-15 16:24:21 · 147 阅读 · 0 评论 -
C++之函数的升级(上)
文章目录内联函数常量与宏回顾内联函数的简单使用内联函数的理解内联函数和宏代码的区别:内联函数比宏更安全内联函数深度示例内联函数的限制内联函数的实现机制函数默认参数函数默认参数的规则函数占位参数c++的占位参数有什么作用哪?内联函数常量与宏回顾C++中的const常量可以替代宏常数定义,如:const int A = 3; <- -> #define A 3C++中是否有解决...原创 2020-02-13 15:55:57 · 209 阅读 · 0 评论 -
C++中的引用
文章目录变量名回顾c++中的引用const常引用:那么如何修改const引用的值那?const常引用 用常量初始化引用有自己的存储空间吗?引用在C++中的内部实现是一个常指针当函数返回值为引用时C++对三目运算符做了什么?变量名回顾c++中的引用在C++中新增加了引用的概念引用可以看作一个已定义变量的别名引用的语法:Type& name = var;#include <...原创 2020-02-12 15:54:55 · 226 阅读 · 0 评论 -
C++之C到C++的升级
文章目录C++中的变量可以在需要使用时再定义C++关键字register变得无效在C++中,不允许定义多个同名的全局变量c++中的constC++编译器对const常量的处理注意:处理过程:C语言中的const变量C++中的const常量const常量和宏的区别:实例分析C++中struct是一种数据类型:C++是一种强类型的语言:C++中的变量可以在需要使用时再定义#include <...原创 2020-02-10 20:20:02 · 331 阅读 · 0 评论 -
关于cout输出char*的坑。
目录 问题引入:问题原因:问题解决: 即兴感言:问题引入:我们先来做一道题:相信有的IT精英和我一样,会认为cout<<指针,当然是地址了。这道题在C语言中不是就是:print("%0x",p);嘛!C语言中这样输出为地址,相信大家都没有疑问吧,否则。。。但是提供的答案却是C。what???马上直接用我所喜爱的Qtcreater验证一下,果然...原创 2018-10-23 16:27:05 · 13542 阅读 · 4 评论