
c++11新标准(c++primer笔记)
火烧尾
青春已逝,科比逝去------ 一切都在变化,唯有你 coding...
展开
-
列表初始化
1、什么是描述符? 可以将描述符理解为对象属性的一个代理,它可以是任何类。其代理可以通过__get__(),__set__(), __delete__()三个特殊方法起作用。 2、什么是非数据描述符、什么是数据描述符? 非数据描述符没有实现__set__()方法,也称为方法描述符;而同时实现__set__(),__get__()方法的描述符称为数据描述符,如:class DevNull(ob转载 2015-07-31 09:59:10 · 402 阅读 · 0 评论 -
空指针nullptr
空指针不指向任何对象,在使用前可以检查是否为空。 几种生成空指针的方法:int *p1 = nullptr; int *p2 = 0; int *p3 = NULL;其中nullptr是c++11中引入的特殊类型字面值,它可以被转换成任何其他的指针类型。 NULL就是0,在预处理中,会直接使用0替换掉,在新标准下最好使用nullptr,如:auto *pi = nullptr; *pi = 1转载 2015-07-31 11:42:53 · 801 阅读 · 0 评论 -
allocator类
allocator是一个模板类,它与new的区别在于:它分配的内存是原始的、未构造的。 例如:allocator<string> alloc;//创建allocator对象 auto const p = alloc.allocate(n); // 为n个string分配内存 auto q = p; alloc.construct(q++);// 初始化p(第一个string)为空字符串 alloc原创 2016-04-30 13:15:14 · 415 阅读 · 0 评论 -
=default,=delete
=default: 用于显式要求编译器提供合成版本的四大函数(构造、拷贝、析构、赋值) 例如:class A{ public: A() = default; A(const A& a) = default; A& operator=(A&); ~A() = default; }我们只能对具有合成版本的成员函数使用=default;=delete,用于定义删除函数,在原创 2016-04-30 14:38:31 · 1947 阅读 · 0 评论