随笔分类 -  c++之面向对象

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