当前位置: 首页 > news >正文

【第六天】c++虚函数多态

一、多态的概述

        多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联(父类与子类)时,就会用到多态。

        C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数

静态多态(编译时多态,早绑定):函数重载、运算符重载

动态多态(运行时多态,晚绑定):虚函数

 二、虚函数

1、知识点引入

        需求:设计一个算法可以操作父类派生的所有子类

        算法通用:父类指针(引用)保存 子类空间地址

父类指针 保存 子类空间地址带来的问题:

 原因:

解决:通过虚函数

2、虚函数的定义

       定义及用法:父类成员函数前加virtual修饰,该函数即为虚函数

       子类重写父类虚函数:函数名、返回值类型、参数类型个数顺序完全一致。

动态多态条件:有继承、子类重写(覆盖)父类的虚函数,父类指针 指向子类空间。

3、虚函数原理

        如果一个类中的成员函数 被virtual修饰,那么这个函数就是虚函数。类就会产生一个虚函 数指针(vfptr)指向了一张虚函数表(vftable)

        如果这个类 没有涉及到继承, 这时虚函数表中 纪录及时当前类的虚函数入口地址。

Animal的类的结构:

一旦子类重写父类虚函数,就会将子类的虚函数肉蔻地址,覆盖虚函数表中原来的入口地址。

Dog的类存结构:

 三、纯虚函数和抽象类

        在设计时,常常希望基类仅仅作为其派生类的一个接口。并且不希望用户实际的创建一个基类的对象。所以创建一个纯虚函数允许接口中放置成员原函数,而不一定要提供一段可能对这个函数毫无意义的代码。

        一个纯虚函数(pure virtual function),使得基类称为抽象类(abstract class),抽象类 必须被继承 同时 子类 必须重写 父类的所有纯虚函数,否则 子类也是抽象类。纯虚函数使用关键字virtual并在其后面加上=0抽象类 不能实例化 对象,如果试图去实例化一个抽象类,编译器则会阻止这种操作。

虚函数不实现函数体:

 class Animal
{
public://纯虚函数virtual void speak(void)=0;
};

抽象类主要的目的 是设计 类的接口:

#include <iostream>
using namespace std;
//抽象制作饮品
class AbstractDrinking{
public://烧水virtual void Boil() = 0;//冲泡virtual void Brew() = 0;//倒入杯中virtual void PourInCup() = 0;//加入辅料virtual void PutSomething() = 0;//规定流程void MakeDrink(){this‐>Boil();Brew();PourInCup();PutSomething();}
};//制作咖啡
class Coffee : public AbstractDrinking{
public://烧水virtual void Boil(){cout << "煮农夫山泉!" << endl;}//冲泡virtual void Brew(){cout << "冲泡咖啡!" << endl;}//倒入杯中virtual void PourInCup(){cout << "将咖啡倒入杯中!" << endl;}//加入辅料virtual void PutSomething(){cout << "加入牛奶!" << endl;}
};//制作茶水
class Tea : public AbstractDrinking{
public://烧水virtual void Boil(){cout << "煮自来水!" << endl;
}//冲泡virtual void Brew(){cout << "冲泡茶叶!" << endl;}//倒入杯中virtual void PourInCup(){cout << "将茶水倒入杯中!" << endl;}//加入辅料virtual void PutSomething(){cout << "加入食盐!" << endl;}
};//业务函数
void DoBussiness(AbstractDrinking* drink){drink‐>MakeDrink();delete drink;
}int main(int argc, char *argv[])
{DoBussiness(new Coffee);//new Coffee 是在堆上分配内存创建一个 Coffee 对象,然后将该对象的指针传递给 DoBussiness 函数进行处理。cout << "‐‐‐‐‐‐‐‐‐‐‐‐‐‐" << endl;DoBussiness(new Tea);return 0
}

虚函数 和纯虚函数的 区别:

虚函数:virtual修饰 有函数体 不会导致父类为抽象类。

纯虚函数:virtual修饰,=0,没有函数体 导致父类为抽象类。子类必须重写父类的所有 纯虚函数。

四、虚析构函数

构造的顺序:父类--->成员---->子类

析构的顺序:子类--->成员---->父类

        虚析构:通过父类指针 释放整个子类空间。

 原理:

 五、纯虚析构

        纯虚析构的本质是析构函数,负责释放各类的空间。而且析构函数不能被继承。 故必须为纯虚析构函数提供一个函数体纯虚析构函数 必须在类外实现

#pragma warning(disable:4996)
#include<iostream>
#include<string.h>
using namespace std;
class Animal
{
public://纯虚函数virtual void speak(void)=0;//纯虚析构//纯虚析构函数 必须在类外实现virtual ~Animal()=0;
};
class Dog:public Animal
{
public://子类重写父类的虚函数,本质仍是虚函数,此时关键字virtual可省void speak(void){cout << "狗在汪汪" << endl;}~Dog(){cout<<"Dog析构函数"<<endl;}
};
void test()
{Animal* p = new Dog;p->speak();delete p;}
int main(int argc, char* argv[])
{test();return 0;
}
//纯虚析构函数 必须在类外实现
Animal::~Animal()
{cout<<"Animal析构函数"<<endl;
}

虚析构 和纯虚析构的区别:

虚析构:virtual修饰,有函数体,不会导致父类为抽象类。

纯虚析构:virtual修饰,=0,函数体必须类外实现,导致父类为抽象类。

六、多态的常见问题

1、多态的分类

2、谈谈你对动态捆绑机制的理解(虚函数实现原理)

3、重载、重定义、重写的区别

4、虚函数和纯虚函数的区别

5、虚析构和纯虚析构的区别

6、虚函数的作用

7、虚析构的作用

八、重载、重定义、重写的区别

        重载:同一作用域,同名函数,参数的顺序、个数、类型不同 都可以重载。函数的返回值 类型不能作为重载条件(例:函数重载、运算符重载)

        重定义:有继承,子类 重定义 父类的同名函数(非虚函数), 参数顺序、个数、类型可以 不同。子类的同名函数会屏蔽父类的所有同名函数(可以通过作用域解决)

        重写(覆盖):有继承,子类重写 父类的虚函数。返回值类型、函数名、参数顺序、个 数、类型都必须一致。

相关文章:

【第六天】c++虚函数多态

一、多态的概述 多态按字面的意思就是多种形态。当类之间存在层次结构&#xff0c;并且类之间是通过继承关联&#xff08;父类与子类&#xff09;时&#xff0c;就会用到多态。 C 多态意味着调用成员函数时&#xff0c;会根据调用函数的对象的类型来执行不同的函数。 静态多态&…...

CGAL::2D Arrangements-3

3.Arrangement查询 Arrangement里面最重要的查询操作是point-location&#xff0c;给定一个点&#xff0c;查找到包含这个点的Arrangement。通常情况下&#xff0c;point-location查询得到的结果是Arrangement的一个face&#xff0c;退化情况下会是一个edge&#xff0c;查一个…...

机器学习--K近邻算法,以及python中通过Scikit-learn库实现K近邻算法API使用技巧

文章目录 1.K-近邻算法思想2.K-近邻算法(KNN)概念3.电影类型分析4.KNN算法流程总结5.k近邻算法api初步使用机器学习库scikit-learn1 Scikit-learn工具介绍2.安装3.Scikit-learn包含的内容4.K-近邻算法API5.案例5.1 步骤分析5.2 代码过程 1.K-近邻算法思想 假如你有一天来到北京…...

Redis 使用 RDB 持久化方式的过程

定时触发&#xff1a; RDB 持久化是通过设置一个定时触发的机制来进行的。管理员可以配置 Redis 在经过一定时间间隔或执行了一定数量的写操作后触发 RDB 持久化。这个配置通常在 Redis 的配置文件中进行&#xff0c;可以通过 save 或 save 900 1 这样的配置项来设定。 save 90…...

仰暮计划|“我非常感谢党的领导,作为一名普通百姓,我也愿意为国家的发展继续贡献微薄的力量”

她出生于1945年&#xff0c;现居河南省平顶山市宝丰县城关镇东街社区&#xff0c;是一位和蔼可亲的老人。 孙奶奶回忆&#xff0c;在学生时期&#xff0c;是点蜡烛照明的&#xff0c;打瞌睡或者离作业本近的时候&#xff0c;就会烧到头发&#xff0c;当时的作业量不大&#xff…...

【思科ssh】思科模拟器配置ssh登录

配置路由器的名称为R1 配置路由器的域名为aaa.com 使用rsa来加密传输数据&#xff0c;密钥位数为2048 配置登录用户名为cj&#xff0c;密码为123456 只允许ssh登录&#xff0c;不能以其他方式登录 本地验证...

python创建pdf文件

目录 一&#xff1a;使用reportlab库 二&#xff1a;使用使pdf库 在Python中生成PDF文件可以使用多种库&#xff0c;其中最常用的是reportlab和fpdf。以下是使用这两个库生成PDF文件的示例代码&#xff1a; 一&#xff1a;使用reportlab库 1&#xff1a;写入文字信息 from r…...

ubuntu开机报错/dev/nume0n1p2:clean

TOC 一、前提 1、当你平时用的图站或者linux系统出现这个问题&#xff0c;首先看看你的显卡有没有换位置。 我的就是项目电脑&#xff0c;同事换了显卡位置&#xff0c;我不知道&#xff0c;当我在这个基础上继续做的时候&#xff0c;出了问题。 2、当你是第一次装显卡&…...

openstack(T版)公有云--Dashboard服务

公有云上OpenStack Train最小化安装_openstack最小化部署-CSDN博客 我的opensatck(T)是参考上面链接去部署完成的&#xff0c;在部署完Dashboard服务后&#xff0c;将要用浏览器访问的时候出现了404 500 Internal Server Error 等各种各样的问题&#xff0c;以下是我排查问题…...

Vue ElementUI中el-table表格嵌套样式问题

一、表格嵌套要求&#xff1a; 两个表格嵌套&#xff0c;当父表格有children数组时子表格才展示&#xff1b;子表格数据少于父表格展示字段&#xff0c;且对应固定操作列不同&#xff1b; 二、嵌套问题&#xff1a; 当使用el-table的typeexpand实现表格嵌套时&#xff0c;样…...

ssm+vue的校园一卡通密钥管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频&#xff1a; ssmvue的校园一卡通密钥管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系…...

docker进阶 问题1

如何使用Docker的容器调试和故障排查工具&#xff1f; Docker提供了一系列强大的工具来帮助开发者调试和排查容器中的问题。以下是一些关键步骤和工具的使用方法&#xff1a; 查看容器日志&#xff1a;使用docker logs [容器ID或名称]命令可以轻松查看容器的标准输出和错误。…...

【OpenVINO™】在 MacOS 上使用 OpenVINO™ C# API 部署 Yolov5 (下篇)

在 MacOS 上使用 OpenVINO™ C# API 部署 Yolov5 &#xff08;下篇&#xff09; 项目介绍 YOLOv5 是革命性的 "单阶段"对象检测模型的第五次迭代&#xff0c;旨在实时提供高速、高精度的结果&#xff0c;是世界上最受欢迎的视觉人工智能模型&#xff0c;代表了Ult…...

使用CHATGPT进行论文写作的缺点和风险

为了真正感受 ChatGPT 的写作潜力&#xff0c;让我们先将其与传统的论文写作方法进行一下比较分析 CHATGPT论文写作的缺点和风险 传统论文写作的考验和磨难很深&#xff1a;费力的研究、组织想法和精心设计的逻辑论证&#xff0c;往往以牺牲你的理智为代价。 进入ChatGPT&am…...

【Android-Gradle】多模块开发中,定义额外属性(全局变量),穿梭在不同的Gradle文件中(kotlin脚本版)

其他信息可以参考官网&#xff1a;https://docs.gradle.org/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html#org.gradle.api.plugins.ExtraPropertiesExtension 但是本文讲一些简单应用&#xff1a; 需求1&#xff1a;根目录gradle文件定义一个全局变量 …...

React18原理: Fiber架构下的单线程CPU调度策略

概述 React 的 Fiber 架构, 它的整个设计思想就是去参考CPU的调度策略CPU现在都是多核多进程的&#xff0c;重点研究的是 CPU是单核单线程&#xff0c;它是如何调度的?为什么要去研究单线程的CPU&#xff1f; 浏览器中的JS它是单线程的JS 的执行线程和浏览器的渲染GUI 是互斥…...

个人搜集的gstreamer学习链接

gstreamer资源&#xff1a; GStreamer: 官方英文官网 GStreamer C开发教程 (gstreamer安装包下载目录) GStreamer GitLab源码 gstreamer 插件列表) gstreamer官方文档&#xff1a; https://gstreamer.freedesktop.org/documentation/tutorials/index.html?gi-languagec …...

Blazor Wasm Gitee 码云登录

目录: OpenID 与 OAuth2 基础知识Blazor wasm Google 登录Blazor wasm Gitee 码云登录Blazor SSR/WASM IDS/OIDC 单点登录授权实例1-建立和配置IDS身份验证服务Blazor SSR/WASM IDS/OIDC 单点登录授权实例2-登录信息组件wasmBlazor SSR/WASM IDS/OIDC 单点登录授权实例3-服务端…...

Android 自定义BaseActivity

直接上代码&#xff1a; BaseActivity代码&#xff1a; package com.example.custom.activity;import android.annotation.SuppressLint; import android.app.Activity; import android.content.pm.ActivityInfo; import android.os.Bundle; import android.os.Looper; impor…...

基于鲲鹏服务器的LNMP配置

基于鲲鹏服务器的LNMP配置 系统 Centos8 # cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) 卸载已经存在的旧版本的安装包 # rpm -qa | grep php #查看已经安装的PHP旧版本# rpm -qa | grep php | xargs rpm -e #卸载已经安装的旧版&#xff0c;如果提示有…...

MIT-Missing Semester_Topic 6:Version Control (Git) 练习题

文章目录 练习一练习二练习三练习四练习五练习六练习七 练习一 若还没有 Git 的相关经验&#xff0c;阅读 Pro Git 的前几章或诸如 Learn Git Branching 的相关教程&#xff0c;并在学习的同时从 Git 的数据模型&#xff08;data model&#xff09;的角度思考各 Git 命令。 老师…...

OpenHarmony轻量级内核-LiteOS-M

OpenHarmony轻量级内核 思维导图 https://download.csdn.net/download/lanlingxueyu/88816723 概述 内核是一人操作系统的运算核心,决定着系统的性能和稳定性。它是基于硬件的第一层软件扩充,提供操作系统的基本功能,是操作系统工作的基础。它负责管理系统的进程、内存、…...

TCP 传输控制协议——详细

目录 1 TCP 1.1 TCP 最主要的特点 1.2 TCP 的连接 TCP 连接&#xff0c;IP 地址&#xff0c;套接字 1.3 可靠传输的工作原理 1.3.1 停止等待协议 &#xff08;1&#xff09;无差错情况 &#xff08;2&#xff09;出现差错 &#xff08;3&#xff09;确认丢失和确认迟到…...

ArcGIS学习(六)地理数据库

ArcGIS学习(六)地理数据库 上个任务我们讲了一个非常重要的知识点一一坐标系。这个任务我们带来另外一个很重要的知识点一一地理数据库。 地理数据库的内容相比于坐标系简单很多! 首先,先让我们来学习下地理数据库的理论。 ArcGIS 中的地理数据库(Geodatabase)是一个用…...

保研机试算法训练个人记录笔记(四)——哈希算法

目录 两数之和 字母异位词分组 最长连续序列 力扣热题100——哈希算法 两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答…...

ChatGPT实战100例 - (14) 打造AI编程助手 Code Copilot

文章目录 ChatGPT实战100例 - (14) 打造AI编程助手 Code Copilot一、Code Copilot AI编程助手二、制作代码生成器2.1 定义生成器框架2.2 从现有代码提取代码模板三、进行代码优化ChatGPT实战100例 - (14) 打造AI编程助手 Code Copilot 一、Code Copilot AI编程助手 Code Copi…...

表单标记(html)

前言 发现input的type属性还是有挺多的&#xff0c;这里把一些常用的总结一下。 HTML 输入类型 (w3school.com.cn)https://www.w3school.com.cn/html/html_form_input_types.asp text-文本 文本输入,如果文字太长&#xff0c;超出的部分就不会显示。 定义供文本输入的单行…...

Linux文件和目录管理

目录基础 Linux操作系统以目录的方式来组织和管理系统中的所有文件。所谓的目录&#xff0c;就是将所有文件的说明信息采用树状结构组织起来。每个目录节点之下会有文件和子目录。 所有一切都从 ‘根’ 开始&#xff0c;用 ‘/’ 代表, 并且延伸到子目录。 bin&#xff1a;B…...

【go】gorm\xorm\ent事务处理

文章目录 1 gorm1.1 开启事务1.2 执行操作1.3 提交或回滚 2 xorm2.1 开启事务2.2 执行操作2.3 提交或回滚 3 ent3.1 开启事务3.2 执行操作3.3 提交或回滚 前言&#xff1a;本文介绍golang三种orm框架对数据库事务的操作 1 gorm Begin开启事务 tx *gorm.DB 1.1 开启事务 tx :…...

【数据分享】1929-2023年全球站点的逐月平均风速(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 有关气象指标的监测站点数据&#xff0c;之前我们分享过1929-2023年全球气象站…...

IP地址详解

IP地址是互联网协议&#xff08;Internet Protocol&#xff09;用于标识并定位网络中主机&#xff08;如计算机、服务器、路由器等&#xff09;的一串数字。它是一个32位的二进制数&#xff0c;通常以四个数字&#xff08;每个数字范围为0-255&#xff09;的形式显示&#xff0…...

Python爬虫http基本原理#2

Python爬虫逆向系列&#xff08;更新中&#xff09;&#xff1a;http://t.csdnimg.cn/5gvI3 HTTP 基本原理 在本节中&#xff0c;我们会详细了解 HTTP 的基本原理&#xff0c;了解在浏览器中敲入 URL 到获取网页内容之间发生了什么。了解了这些内容&#xff0c;有助于我们进一…...

Web Services 服务 是不是过时了?创建 Web Services 服务实例

Web Services 是不是过时了&#xff1f; 今天是兔年最后一天&#xff0c;先给大家拜个早年 。 昨天上午视频面试一家公司需要开发Web Services 服务&#xff0c;这个也没有什么&#xff0c;但还需要用 VB.net 开发。这个是多古老的语言了&#xff0c;让我想起来了 10年 前 写 …...

redis单线程还快的原因

1. 内存存储和高效数据结构&#xff1a; 内存存储&#xff1a; Redis将数据存储在内存中&#xff0c;因此可以实现非常高的读写速度&#xff0c;而无需频繁的磁盘I/O操作。 高效数据结构&#xff1a; Redis内置了丰富且高效的数据结构&#xff0c;如字符串、哈希表、列表、集合…...

【flutter】报错 cmdline-tools component is missing

在flutterSDK目录下&#xff0c;双击flutter_console.bat&#xff0c;调出命令行。 输入flutter doctor&#xff0c;如果第三个诊断为[x]&#xff0c;报cmdline-tools component is missing错&#xff08;我这已经修改好了&#xff0c;所以是勾了&#xff09;&#xff0c;那就可…...

以用户为中心,酷开科技荣获“消费者服务之星”

在企业顺应消费升级的道路中&#xff0c;企业自身不仅要着力强化对于消费者服务意识的提升&#xff0c;并且要树立诚信自律的行业示范带头作用&#xff0c;助力消费环境稳中向好&#xff0c;不断满足人民群众对美好生活的期待。企业的发展需要消费者的认可&#xff0c;酷开科技…...

Days 27 ElfBoard 板 AltiumDesigner 相同电路快速布局布线

在进行设计开发的时候&#xff0c;总会遇到相同的电路&#xff0c;或者模块&#xff0c;这些电路可以使用相同的布局和走线&#xff0c;例如 DC-DC 电源、网口 PHY 电路部分。这类型的电路&#xff0c;我们可以采用AltiumDesigner 中的 Room 进行布局和布线的快速复制&#xff…...

除夕快乐(前端小烟花)

家人们&#xff0c;新的一年好运常在&#xff0c;愿大家在新的一年里得偿所愿&#xff0c;发财暴富&#xff0c;愿大家找到属于自己的那个公主&#xff0c;下面就给大家展示一下给公主的烟花 前端烟花 新的一年&#xff0c;新的挑战&#xff0c;愿我们不忘初心&#xff0c;砥砺…...

fast.ai 深度学习笔记(二)

深度学习 2&#xff1a;第 1 部分第 4 课 原文&#xff1a;medium.com/hiromi_suenaga/deep-learning-2-part-1-lesson-4-2048a26d58aa 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 来自 fast.ai 课程的个人笔记。随着我继续复习课程以“真正”理解它&#xff0c;这…...

风行智能电视G32Y 强制刷机升级方法,附刷机升级数据MstarUpgrade.bin

升级步骤&#xff1a; 1、下载刷机数据&#xff0c;如是压缩包&#xff0c;需要先解压&#xff0c;然后将刷机bin格式的文件重命名为MstarUpgrade.bin 2、将此文件放到U盘根目录 &#xff08;U盘格式FAT32&#xff0c;单分区&#xff0c;建议4G的优盘刷机成功率高&#xff09;…...

tsgctf-2021-lkgit-无锁竞争-userfaultfd

启动脚本 qemu-system-x86_64 \-kernel ./bzImage \-initrd ./rootfs.cpio \-nographic \-monitor /dev/null \-cpu kvm64,smep,smap \-append "consolettyS0 kaslr oopspanic panic1 quiet" \-no-reboot \-m 256M题目 lkgit_hash_object #define HASH_SIZE …...

物联网数据隐私保护技术

在物联网&#xff08;IoT&#xff09;的世界中&#xff0c;无数的设备通过互联网连接在一起&#xff0c;不断地收集、传输和处理数据。这些数据有助于提高生产效率、优化用户体验并创造新的服务模式。然而&#xff0c;随着数据量的剧增&#xff0c;数据隐私保护成为了一个不能忽…...

RabbitMQ-1.介绍与安装

介绍与安装 1.RabbitMQ1.0.技术选型1.1.安装1.2.收发消息1.2.1.交换机1.2.2.队列1.2.3.绑定关系1.2.4.发送消息 1.2.数据隔离1.2.1.用户管理1.2.3.virtual host 1.RabbitMQ 1.0.技术选型 消息Broker&#xff0c;目前常见的实现方案就是消息队列&#xff08;MessageQueue&…...

CSS高级技巧

一、 精灵图 1.1 为什么需要精灵图&#xff1f; 1.2 精灵图&#xff08;sprites&#xff09;的使用 二、 字体图标 2.1 字体图标的产生 2.2 字体图标的优点 2.3 字体图标的下载 icomoom字库 http://icomoon.io 阿里iconfont字库 http://www.iconfont.cn/ 2.4 字体图标的引用…...

Redis的数据类型Hash使用场景实战

Redis的数据类型Hash使用场景 常见面试题&#xff1a;redis在你们项目中是怎么用的&#xff0c;除了String数据类型还使用什么数据类型&#xff1f; 怎么保证缓存和数据一致性等问题… Hash模型使用场景 知识回顾&#xff1a; redisTemplate.opsForHash() 方法是 Redis 的 …...

HttpClient | 支持 HTTP 协议的客户端编程工具包

目录 1、简介 2、应用场景 3、导入 4、API 5、示例 5.1、GET请求 5.2、POST请求 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应用开发、数据结构和算法&#xff0c;初…...

DP第一天:力扣● 理论基础 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯

● 理论基础 DP大约五种问题&#xff1a; 动规基础&#xff08;斐波那契数列、爬楼梯&#xff09;&#xff1b;背包问题&#xff1b;股票问题&#xff1b;打家劫舍&#xff1b;子序列问题。 要搞清楚&#xff1a; DP数组及其下标的含义&#xff1b;DP数组如何初始化&#x…...

Android Studio 安装Flutter插件但是没法创建项目

Android Studio 安装Flutter插件但是没法创建项目 如果你在Android Studio已经安装了Dart、Flutter插件&#xff0c;但是不能创建Flutter项目。 原因是因为Android Studio的版本更新&#xff0c;Android APK Support这个插件没被选中。 一旦勾选这个插件之后&#xff0c;就能…...

新春快乐(烟花、春联)【附源码】

新春快乐 一&#xff1a; C语言 -- 烟花二&#xff1a;Python -- 春联三&#xff1a;Python -- 烟花四&#xff1a;HTML -- 烟花 一&#xff1a; C语言 – 烟花 运行效果&#xff1a; #include <graphics.h> #include <math.h> #include <time.h> #include…...

nextcloud 优化扩展

cd /config vi config.php #ONLYOFFICE allow_local_remote_servers > true, #应用商店加速 appstoreenabled > true, appstoreurl > https://www.orcy.net/ncapps/v2/, #nginx配置调优 add_header Strict-Transport-Security max-age15552000; add…...