![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++11
c++11
低头看天,抬头走路
句句都是正确的废话,招招都是致命的空招。
展开
-
C++关于NULL、0、nullptr
一 关于NULL、0、nullptr1 在C语言中NULL被定义为:一个void* 指针,指向的地址为0。2 而在C++中,NULL会被定义为03 C++11引入了nullptr 来表示空指针//func1int mycall(char *a, char *b){ cout<<"char pointer!"<<endl;}//func2int my...原创 2019-12-11 16:08:39 · 188 阅读 · 0 评论 -
c++11 emplace_back和push_back
有移动构造函数#include <iostream>#include <cstring>#include <vector>using namespace std; class A {public: A(int i){ str = to_string(i); cout << "构造函数" <&...原创 2020-03-14 00:36:09 · 264 阅读 · 0 评论 -
右值引用与转移语义
新特性的目的右值引用 (Rvalue Referene) 是 C++ 新标准 (C++11, 11 代表 2011 年 ) 中引入的新特性 , 它实现了转移语义 (Move Sementics) 和精确传递 (Perfect Forwarding)。它的主要目的有两个方面:消除两个对象交互时不必要的对象拷贝,节省运算存储资源,提高效率。能够更简洁明确地定义泛型函数。左值与右值的定义C++...原创 2019-12-10 12:17:06 · 279 阅读 · 0 评论 -
c++ 智能指针
智能指针在智能指针出现以前,我们通常使用 new 和 delete 来管理动态分配的内存,但这种方式存在几个常见的问题:1.忘记 delete 内存:会导致内存泄漏问题,且除非是内存耗尽否则很难检测到这种错误。2.使用已经释放掉的对象:如果能够记得在释放掉内存后将指针置空并在下次使用前判空,尚可避免这种错误。3.同一块内存释放两次:如果有两个指针指向相同的动态分配对象,则很容易发生这种错误...原创 2019-08-04 23:16:50 · 222 阅读 · 0 评论 -
c++四种cast的原理和用途
四种castc++ 有四种显示类型转换,分别为static_cast, dynamic_cast, const_cast, reinterpret_cast。static_cast主要用于1.基本类型的转换,比如int转char2.类的上行转换,子类的指针或者引用转换为基类(安全)3.类的下行转换,基类的指针或引用转换为子类(不安全,没有类型检查)dynamic_cast用于类的指...原创 2019-06-30 17:10:30 · 7214 阅读 · 1 评论