- 博客(7)
- 资源 (7)
- 收藏
- 关注
原创 c++11学习笔记(6)- 智能指针
文章目录1. unique_ptr2. shared_ptr3. weak_ptr智能指针在C++11以前就已经存在了,使用的是 auto_ptr 作为只能指针,不过 auto_ptr 有一个缺点,拷贝时返回一个左值,不能调用delete[]等,所以在C++11中被弃用了。C++11中使用 unique_ptr 、shared_ptr 、weak_ptr 等智能指针回收堆分配的对象。1. u...
2019-04-29 23:28:28 327
原创 c++11学习笔记(5)- 引用折叠和完美转发
C++通过引入一条所谓“引用折叠”的语言规则,并结合模板推导来完成完美转发的。首先看一个例子:template<typename T>void testFunc(T& r){ }当我们给函数传入引用时,如果我们对函数 testFunc 传入一个非引用类型的数据,那么形参中r的类型时什么呢?传入一个右值引用,形参r中的类型是什么呢?如果函数参数声明的类型是右值引用...
2019-04-24 22:34:48 2754 1
原创 c++11学习笔记(4)- 移动构造函数与移动语义
文章目录@[toc]1.移动构造函数2. std::move1.移动构造函数什么是移动构造函数呢?我们首先来看一个例子:#include <iostream>#include <stdlib.h>class Object{public: Object() { std::cout << "Object()" << std::en...
2019-04-23 23:54:38 716
原创 c++11学习笔记(3)- 左值、右值和右值引用
文章目录@[toc]1.左值和右值2.右值引用3.右值引用的使用1. 使用右值引用增长生命周期2. 右值引用接受的对象1.左值和右值什么是左值,什么又是右值呢?先看一个例子int a = b + c;这里的 a 就是左值, 而 b+c 就是右值。C++标准中没有明确的定义左值和右值,通常意义上我们对于左值和右值做出如下规定。可以取地址的、有名字的为 左值 。不能取地址的、没有 名...
2019-04-22 23:59:59 1127
原创 C++中的虚析构
首先什么是虚析构,虚析构就是析构函数为虚函数。那么为什么要用虚析构呢,是为了delete基类指针指向派生类时防止子类得数据不会被释放造成内存泄露。我们看一下下面的例子:首先我们定义一个数据类,MyDataclass MyData{public: MyData(){ m_Data = new char[10]; } ~MyData() { delete[] m_Data;...
2019-04-20 15:39:05 9038
原创 c++11学习笔记(2)- std::function
std::function 是一个 函数包装模板 ,用来存储、转移、调用目标函数,包括普通函数、类的成员函数、lambda表达式、仿函数等。如果std::function未包裹任何可调用的元素,则会抛出std::bad_function_call 异常。下面是一个关于std::function的使用的一个简单的示例首先我们定义几个函数:// 普通函数void printFunc(int...
2019-04-17 22:50:17 599
原创 C++中的虚表
C++中为了实现多态,使用的时虚表。首先我们看一个简单的例子,代码如下:#include <iostream>#include "stdlib.h"class BaseClass{public: BaseClass() {} ~BaseClass(){} virtual void runPrint(void) { std::cout << "Run...
2019-04-13 17:25:46 1568 2
COM编程入门Part Ⅱ - 深入理解COM服务器[译] (代码)
2020-12-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人