摘要: 1. 左值和右值 左值(L-value):能用“取地址&”运算符获得对象的内存地址,表达式结束后依然存在的持久化对象。左值可以出现在等号左边也能够出现在等号右边。 右值(R-value):不能用“取地址&”运算符获得对象的内存地址,表达式结束后就不再存在的临时对象。只能出现在等号右边。 - 可以做出 阅读全文
posted @ 2020-05-27 21:37 _yanghh 阅读(3483) 评论(0) 推荐(0) 编辑
摘要: 1. 函数对象 如果一个类将()运算符重载为成员函数,这个类就称为函数对象类,这个类的对象就是函数对象。函数对象是一个对象, 但是使用的形式看起来像函数调用,实际上也执行了函数调用,因而得名。 // 函数对象类 class Average { public: // 重载()运算符 double op 阅读全文
posted @ 2020-05-27 11:38 _yanghh 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 1. std::thread基本介绍 1)构造std::thread对象时,如果不带参则会创建一个空的thread对象,但底层线程并没有真正被创建,一般可将其他std::thread对象通过move移入其中; 如果带参则会创建新线程,而且会被立即运行。 2)joinable():用于判断std::t 阅读全文
posted @ 2020-05-26 15:22 _yanghh 阅读(10370) 评论(0) 推荐(1) 编辑
摘要: 1. 消息队列的模式 1)简单模式:当客户端(生产者)将消息写入到消息队列中时,消息队列中消息的数量加1,消费者实时监听消息队列,当队列中有消息时, 则获取消息,之后执行业务逻辑,同时消息队列的消息数量减1。 特点:一个生产者P发送消息到队列Q,一个消费者C接收。 2)工作模式:由一个生产者负责消息 阅读全文
posted @ 2020-05-24 17:29 _yanghh 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 1. 基本概念 所谓重载,就是重新赋予新的含义。不仅函数可以重载,运算符也可以重载。 a. 运算符重载的本质是一个函数。 b. 实现运算符重载是通过operator关键字实现的,运算符重载可以通过类的成员函数和类的友元函数来实现。 区别在于成员函数具有this指针,通过对象调用来传递参数,友元函数没 阅读全文
posted @ 2020-05-24 09:58 _yanghh 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 1. 友元函数 类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。 尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数。申明友元函数的语句可以放在类中任意位置。 class A { public: A() : a(100) {} 阅读全文
posted @ 2020-05-24 09:57 _yanghh 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 1. 基本概念 是对一批仅仅成员数据类型不同的类的抽象,程序员只要为这一批类所组成的整个类家族创建一个类模板,给出一套程序代码,就可以用来生成多种具体的类。 总结以下两点: 1)类模板用于实现类所需数据的类型参数化。 2)类模板在表示如数组、表、图等数据结构显得特别重要,这些数据结构的表示和算法不受 阅读全文
posted @ 2020-05-24 09:39 _yanghh 阅读(298) 评论(0) 推荐(1) 编辑
摘要: 使用const修饰变量意味着其只读的,但是C语言的const和C++中const确有着很大的不同。 C语言const是“冒牌货”,而C++中的是一个真正的常量。 C语言中虽然我们不能直接修改const变量的值,但是可以通过获取变量的地址通过指针来间接修改。 下面这个C语言程序,a先后输出的值为5和6 阅读全文
posted @ 2020-05-23 22:29 _yanghh 阅读(700) 评论(0) 推荐(0) 编辑
摘要: 1. 基本介绍 std::bitset 是标准库中的一个存储 0/1 的大小不可变容器。严格来讲,它并不属于 STL。 由于内存地址是按字节即 byte 寻址,而非比特 bit ,一个 bool 类型的变量,虽然只能表示 0/1 , 但是也占了 1 byte 的内存。 bitset 就是通过固定的优 阅读全文
posted @ 2020-05-23 21:08 _yanghh 阅读(781) 评论(0) 推荐(0) 编辑
摘要: 库有两种:静态库(.a、.lib)和动态库(.so、.dll)。 windows上对应的是.lib、.dll,linux上对应的是.a、.so。 1. 静态库 在链接阶段,将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中,此链接方式称为静态链接。 试想一下,静态库与汇编生成的目标文件一 阅读全文
posted @ 2020-05-23 10:15 _yanghh 阅读(152) 评论(0) 推荐(1) 编辑