摘要:
目录 C++11增加了一个新的类型,称作右值引用(R-value reference),标记为T&&,右值引用结合std::move可以很好的优化程序的效率。 1.左值、右值、左值引用、右值引用 左值是有名字的,对应了一定的内存区域,可访问;右值不具名,不对应内存域,不可访问,临时对像是右值。区分表 阅读全文
摘要:
1 #include 2 #include 3 4 using namespace std; 5 6 struct SingleListNode { 7 int val; 8 SingleListNode *next; 9 SingleListNode(int x) : 10 val(x), next(... 阅读全文
摘要:
指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名,引用初始化后不能改变指向。使用时,引用更加安全,指针更加灵活。 指针和数组之间的区别 阅读全文
摘要:
C++面向对象语言一大难点是继承,但又是不得不掌握的。简单的继承是很容易理解的,但是当涉及到多继承,设计到虚函数的继承,特别是涉及到虚继承时,问题就会变得复杂。下面的内容来自参考资料中的三篇文章。C++的继承学习中,最主要是要掌握派生类的对象模型,基类和派生类指针之间的向上向下类型转换,当继承中的出 阅读全文
摘要:
目录 静态类型 vs 动态类型、静态绑定 vs 动态绑定 虚函数动态绑定实现机制、虚析构函数 多态性 静态类型 vs 动态类型、静态绑定 vs 动态绑定 虚函数动态绑定实现机制、虚析构函数 多态性 一.静态 vs 动态 静态类型 VS 动态类型。静态类型指的是对象声明的类型,在编译器确定的。动态类型 阅读全文
摘要:
一、Linux 线程API 线程是在操作系统层面支持的,所以多线程的学习建议还是先找一本linux系统编程类的书,了解linux提供线程的API,了解使用线程设计程序的基本操纵。完全使用系统调用编写多线程程序是痛苦,现在有很多封装好的多线程库,帮助简单快速的使用线程编程,了解操作系统提供的API对理 阅读全文
摘要:
转载自:http://blog.chinaunix.net/uid-790245-id-2037327.html 问题提出: 我们已知道类具备封装和信息隐 藏的特性。只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的。非成员函数能够访问类中的公有成员,但是假如将数据成员都定义 阅读全文
摘要:
目录 理解智能指针的原理 智能指针的使用 智能指针的设计和实现 理解智能指针的原理 智能指针的使用 智能指针的设计和实现 1.智能指针的作用 C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的, 阅读全文
摘要:
目录 1.迭代器的使用 为了提高C++编程的效率,STL中提供了许多容器,包括vector、list、map、set等。有些容器例如vector可以通过脚标索引的方式访问容器里面的数据,但是大部分的容器不能使用这种方式,例如list、map、set。STL中每种容器在实现的时候设计了一个内嵌的ite 阅读全文
摘要:
目录 定义一个通用模板 模板特化和偏特化 模板实例化与匹配 可变参数模板 定义一个通用模板 模板特化和偏特化 模板实例化与匹配 可变参数模板 泛型编程是指独立与任何类型的方式编写代码。泛型编程和面向对象编程,都依赖与某种形式的多态。面向对象编程的多态性在运行时应用于存在继承关系的类,一段代码可以可以 阅读全文