c++虚函数表
摘要:1.概述 为了实现C++的多态,C++使用了一种动态绑定的技术,这个技术的核心是虚函数表(下文简称虚表)。本文介绍虚函数表是如何实现动态绑定的。 2.类的虚表[指针类型的数组来保存虚函数的函数指针,仅属于类] 每个包含了虚函数的类都包含一个虚表,类中只要有虚函数,就会有一个虚表来维护。 虚表是属于类
阅读全文
posted @
2023-03-15 16:35
斗战胜佛美猴王
阅读(429)
推荐(0) 编辑
c++之仿函数[1]
摘要:1.为什么要有仿函数 假设我们现在有一个数组,数组中存有任意数量的数字,我们希望能够统计出这个数组中大于 10 的数字的数量,你的代码很可能是这样的: #include <iostream> using namespace std; int RecallFunc(int *start, int *e
阅读全文
posted @
2023-03-15 11:22
斗战胜佛美猴王
阅读(311)
推荐(0) 编辑
c++之模版(函数模版+类模版)
摘要:一.函数模版【一个函数,不同类型的参数来调用】 函数模板是C++新增的一种性质,它允许只定义一次函数的实现,即可使用不同类型的参数来调用该函数(一个函数多用)。这样做可以减小代码的书写的复杂度,同时也便于修改(注:使用模板函数并不会减少最终可执行程序的大小,因为在调用模板函数时,编译器都根据调用时的
阅读全文
posted @
2023-03-13 16:20
斗战胜佛美猴王
阅读(250)
推荐(0) 编辑
C++类内定义引用成员
摘要:遵循三个规则 C++类内可以定义引用成员变量,但要遵循以下三个规则: 不能用默认构造函数初始化,必须提供构造函数来初始化引用成员变量。否则会造成引用未初始化错误。 构造函数的形参也必须是引用类型 不能在构造函数的函数体赋值(为什么不是说初始化呢?因为所有的成员变量都是在初始化列表中完成的),必须在初
阅读全文
posted @
2023-03-13 10:21
斗战胜佛美猴王
阅读(329)
推荐(0) 编辑
c++之虚基类
摘要:1.虚基类 在多继承关系中,如果一个派生类的从两个父类那里继承过来,并且这两个父类又恰恰是从一个基类那里继承而来【菱形继承问题】。那这样就麻烦了,因为你可能继承了两份一样的成员!这不仅多占用内存,而且还出现了所谓二义性问题。 #include <iostream> using namespace s
阅读全文
posted @
2023-03-09 18:05
斗战胜佛美猴王
阅读(190)
推荐(0) 编辑
c++移动构造函数
摘要:一.定义【源对象资源的控制权全部移交给目标对象】 有些复制构造是必要的,我们确实需要另外一个副本;而有些复制构造是不必要的,我们可能只是希望这个对象换个地方,移动一下而已。在C++11之前,如果要将源对象的状态转移到目标对象只能通过复制。而现在在某些情况下,我们没有必要复制对象——只需要移动它们。移
阅读全文
posted @
2023-03-09 13:34
斗战胜佛美猴王
阅读(2963)
推荐(2) 编辑