上一页 1 2 3 4 5 6 7 8 9 ··· 42 下一页
摘要: std::thread 在 <thread> 头文件中声明,因此使用 std::thread 时需要包含 <thread> 头文件。 thread 构造函数: (1). 默认构造函数,创建一个空的 thread 执行对象。 (2). 初始化构造函数,创建一个 thread对象,该 thread 对象 阅读全文
posted @ 2018-03-06 22:28 geloutingyu 阅读(624) 评论(0) 推荐(0) 编辑
摘要: 定义、实例化函数模板: 对于函数体完全相同,唯一差异就是参数类型的情况,我们可以定义一个通用的函数模板,而非为每个类型都定义一个新函数: 1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 template <ty 阅读全文
posted @ 2018-02-27 23:22 geloutingyu 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 当存在继承关系时,派生类的作用域嵌套在其基类的作用域之内。如果一个名字在派生类的作用域内无法正确解析,则编译器将继续在外层的基类作用域中寻找该名字的定义 在编译时进行名字查找: 一个对象、引用或指针的静态类型决定了该对象的哪些成员是可见的,即使静态类型与动态类型不一致: 1 #include <io 阅读全文
posted @ 2018-02-24 15:45 geloutingyu 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 通常情况下,如果我们不适用某个函数,则无需为该函数提供定义。但我们必须为每个虚函数都提供定义而不管它是否被用到了,这因为连编译器也无法确定到底会适用哪个虚函数 对虚函数的调用可能在运行时才被解析: 当某个虚函数通过指针或引用调用时,编译器产生的代码直到运行时才能确定应该调用哪个版本的函数。被调用的函 阅读全文
posted @ 2018-02-18 21:43 geloutingyu 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 面向对象程序设计基于三个基本概念:数据抽象,继承和动态绑定 数据抽象是一种依赖于接口和实现分离的编程技术。继承和动态绑定对程序的编号有两方面的影响:一是我们可以更容易地定义与其它类相似但不完全相同的类;二是在使用这些彼此相似的类编写程序时,我们可以在一定程度上忽略掉它们的区别。 在 c++ 语言中, 阅读全文
posted @ 2018-02-17 22:32 geloutingyu 阅读(497) 评论(0) 推荐(0) 编辑
摘要: 在对象拷贝后就立即被销毁的情况下,移动而非拷贝对象会大幅度提升性能。以及像 IO 类或 unique_ptr 这样的类,包含不能被共享的资源,不能拷贝但可以移动。而标准库容器、string 和 shared_ptr 类既支持移动也支持拷贝 右值引用: 右值引用是 c++11 为了支持移动操作引入的。 阅读全文
posted @ 2018-02-11 21:50 geloutingyu 阅读(448) 评论(1) 推荐(0) 编辑
摘要: 为了定义拷贝构造函数和拷贝赋值运算符,我们首先必须确认此类型对象的拷贝语义。通常可以定义拷贝操作,使类的行为看起来像一个值或者像一个指针(即所谓的深拷贝和浅拷贝) 类的行为像一个值,意味着它应该也有自己的状态。当我们拷贝一个像值的对象时,副本和原对象是完全独立的。改变副本不会对原对象有任何影响,反之 阅读全文
posted @ 2018-02-05 23:38 geloutingyu 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 拷贝控制操作即对象的拷贝,移动,赋值和销毁。一个类通过拷贝构造函数,拷贝赋值运算符,移动构造函数,移动赋值运算符和析构函数来完成这些工作。拷贝和移动构造函数定义了当用相同类型的另一个对象初始化本对象时做什么。拷贝和移动运算符定义了将一个对象赋予同类型的另一个对象时做什么。析构函数定义了当此类型对象销 阅读全文
posted @ 2018-02-05 16:52 geloutingyu 阅读(649) 评论(0) 推荐(0) 编辑
摘要: 在 c++11 中提供了两种一次分配一个对象数组的方法。其一是使用一种 new 表达式语法,其二是使用一个名为 allocator 的类。虽然通常我们更希望用容器来代替数组(使用容器的类可以使用默认版本的拷贝、赋值和析构操作。分配动态数组的类则必须定义自己版本的操作,在拷贝、复制以及销毁对象时管理所 阅读全文
posted @ 2018-02-02 16:13 geloutingyu 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 静态内存用来保存局部 static 对象、类 static 数据成员 以及任何定义在函数之外的变量。栈内存用来存储定义在函数内部的非 static 对象。分配在静态或栈内存中的对象由编译器自动创建和销毁。对于栈对象,仅在其定义的程序块运行时才存在;static 对象在使用之前分配,在程序结束时销毁。 阅读全文
posted @ 2018-01-31 20:10 geloutingyu 阅读(526) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 42 下一页