摘要:
C++ 程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。但使用普通指针,容易造成内存泄露(忘记释放)、二次释放、程序发生异常时内存泄露等问题等。所有 C++11 就引入了智能指针。 一、原始指针容易发生内存泄漏 C 语言中最常使用的是malloc()函数分配内存,free 阅读全文
摘要:
一、VS2019安装 现在 Visual Studio 的最新版本已经升级到了 VS2019,另外 VS2019 社区版也是完全免费的,所以就准备升级到 VS2019 了,不再用 VS2015 了。 官方下载地址:https://visualstudio.microsoft.com/zh-hans/ 阅读全文
摘要:
一、C++11为什么要引入Lambda表达式? 编写程序时,往往会大量用到函数,为此要编写很多类。有的类只用来定义了一个函数成员,而且这个函数也只使用了一次,编写这样的类就有点浪费。而且,定义类的地方和使用成员函数的地方可能相隔较远,查看其 operator() 成员函数也比较麻烦。 对于只使用一次 阅读全文
摘要:
一、C++11为什么要引入std::bind? C++11 引入了std::bind,顾名思义,是用来绑定函数调用的某些参数的。std::bind能改造现有函数,生成新的函数。举例说明,现在有这么个函数声明: int f(int a, int b); 我现在需求,我要一个有 2 个 int 类型参数 阅读全文
摘要:
博客《C++11 新特性总结》描述了一些 C++11 带来的新的特性,但是不够全面。所以写该博客做一个简要补充。在实际工作中,std::function 经常用来实现回调函数。 一、C++11为什么要引入std::function? 在 C++03 的时代,是使用函数指针来把一个函数作为参数传递,这 阅读全文