![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
anArkitek
这个作者很懒,什么都没留下…
展开
-
C++ 运行期多态和编译器多态
C++多态有多种实现方式,在面对对象编程时,采用的是运行期多态,也称动态多态。在泛型编程中,多态基于模板的具现化与函数的重载解析,这种多态在编译期进行,也称编译器多态或者静态多态。运行期多态运行期多态归根结底就是类继承的一个特性。我们习惯于抽象出不同功能的对象的共有功能集合,在基类中将这些共有功能声明为虚函数(也称虚接口),然后由子类去重写这些虚函数,以实现多态。class Animal...原创 2019-05-27 02:23:14 · 583 阅读 · 2 评论 -
C++ 多态
为什么类的静态成员函数不能为虚函数?如果定义为虚函数,那么它就是动态绑定的,也就是在派生类中可以被覆盖的,这与静态成员函数的定义(在内存中只有一份拷贝,通过类名或对象引用访问静态成员)本身就是相矛盾的。为什么构造函数不能为虚函数?在继承体系中,构造的顺序就是从基类到派生类,其目的就在于确保对象能够成功地构建。构造函数同时承担着虚函数表的建立,如果它本身都是虚函数的话,如何确保vtbl...原创 2019-05-27 03:02:55 · 132 阅读 · 0 评论 -
Explicit Sepcifier
Table of Contents1. Conversion Constructor2. Explicit Specifier3. Explicitly Typecast1. Conversion Constructor#include <iostream> using namespace std; class Complex { private: double r...原创 2019-06-03 02:46:08 · 241 阅读 · 0 评论 -
Resource Acquisition is Initialization (RAII)
Table of Contents1. Example of `Mutex_lock()`1.1 Bad Performance1.2 Good Performance2. Example of `std::share_ptr`1. Example of Mutex_lock()1.1 Bad PerformanceMutex_t mu = MUTEX_INITIALIZER();voi...原创 2019-06-03 05:01:55 · 148 阅读 · 0 评论 -
模板
模版函数1. 函数模板实例 (Function Template Instances)假设我们有如下的模版函数template <typename T> // this is the template parameter declarationconst T& max(const T& x, const T& y){ return (x >...原创 2019-08-04 04:07:07 · 165 阅读 · 0 评论 -
STL Algorithms 01: Non-modifying Algorithms
文章目录STL Algorithms 01: Non-modifying Algorithms1. 计数容器中某个元素重复的次数2. 得到容器中第一个最大值,最小值的位置3. 线性搜索 (针对未排序的容器,否则可以用 binary search)3.1. 在一个容器中找到与另一个子串匹配的开始位置3.2. 在一个容器中找出也存在于另一个容器的元素3.3. 在一个容器中寻找满足要求的相邻元素3.4....原创 2019-08-09 13:47:11 · 151 阅读 · 0 评论