
虚函数表详解
关键词:虚函数,虚表,虚表指针,动态绑定,多态 一、概述 为了实现C++的多态,C++使用了一种动态绑定的技术。这个技术的核心是虚函数表(下文简称虚表)。本文介绍虚函数表是如何实现动态绑定的。 二、类的虚表 每个包含了虚函数的类都包含一个虚...
关键词:虚函数,虚表,虚表指针,动态绑定,多态 一、概述 为了实现C++的多态,C++使用了一种动态绑定的技术。这个技术的核心是虚函数表(下文简称虚表)。本文介绍虚函数表是如何实现动态绑定的。 二、类的虚表 每个包含了虚函数的类都包含一个虚...
#ifndef THREAD_POOL_H #define THREAD_POOL_H #include <condition_variable> #include <functional> #include <...
前言 unique_ptr这个指针是C++11标准时被引入标准库的,有一种说法称它是boost::scoped_ptr的一个分身,并且它在C++11的时候“转正”了,但是scoped_ptr还被留在boost库中,看来没有转正的机会了,不过...
前言 weak_ptr这个指针天生一副“小弟”的模样,也是在C++11的时候引入的标准库,它的出现完全是为了弥补它老大shared_ptr天生有缺陷的问题,其实相比于上一代的智能指针auto_ptr来说,新进老大shared_ptr可以说近...
前言 这个指针近乎完美,原来出现在boost库中,C++11时引入了标准库,解决了auto_ptr对内部对象独占的机制,转而采用引用计数的方式,每增加一次赋值,则引用计数加1,每析构一个智能指针对象,则引用计数减1,当引用计数为1时销毁智能...
智能指针作用: 普通指针new以后,有的人忘记删除就会引起内存泄漏,而且删除时也会有一些问题,例如一片内存地址被同时删除多次就会引起程序崩溃。所以这个时候引进了智能指针,可以在离开作用域后自动释放。这里介绍4种智能指针,智能指针包含在头...
介绍condition_variable, wait,wait_for 直接上代码如下: #include <iostream> // std::cout #include <thread> // std::thre...
条件变量condition_variable 假设有两个线程,一个线程A一个线程B。 线程A:等待一个条件满足. 线程B:专门往消息队列中扔消息(数据) condition_variable是一个类,和条件相关的类,等待一个条件完成,需要和...
为什么要自己封装个String类?原因很多。QT库有自己的QString类,MFC有自己的CString类。STL标准库有自己的std::string类。MySQL数据库的C API接口使用原生的char*指针。。。。。。 自己写的程序用那...
考虑互斥量的使用,最基本的代码是: 1 #include <iostream> 2 #include <thread> 3 #include <mutex> 4 5 std::mutex g_my_mut...