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

【C++打怪之路Lv4】-- 类和对象(中)

🌈 个人主页:白子寰
🔥 分类专栏:C++打怪之路,python从入门到精通,数据结构,C语言,C语言题集👈 希望得到您的订阅和支持~
💡 坚持创作博文(平均质量分82+),分享更多关于深度学习、C/C++,python领域的优质内容!(希望得到您的关注~)

目录

类的6个默认成员函数

构造函数

概念 

六个特性

默认构造函数的意义

 析构函数

概念

四个特性

小结

 拷贝构造函数

概念

三个特性

总结

 赋值运算符重载

运算符重载

相等操作符重载函数(比较Date中的两个对象是否相等) 

在全局中

在类中

注意点

this 和 *this 的区别

​编辑

赋值运算符重载

赋值运算符重载格式

 注意点

赋值运算符重载 和 拷贝构造函数 的区别

 传值返回 和 传引用返回 的区别

前置++ 和 后置++ 重载

const成员

含义

在哪用

取地址及const取地址操作符重载

日期类的实现

Date.h

Date.cpp

Test.cpp


类的6个默认成员函数

1、特殊成员函数

2、不写编译器会自动生成



构造函数

概念 

构造函数是初始化对象不是开空间

C语言中没有初始化,会出现随机值


六个特性

  1. 函数名与类名相同
  2. 无返回值

  3. 对象实例化 自动调用 该函数

  4. 构造函数可以重载

  5. 如没有显式定义的构造函数,编译器自动生成(隐式的无参构造函数);反之,则不会自动生成

  • 注:①不显式写默认构造,对于内置类型成员变量,看编译器是否处理; 对于自定义类型成员变量才会调用它的 无参构造(不传参就可以调用的那个构造)

②默认构造函数包括:无参构造函数、全缺省构造函数、编译器默认生成的构造函数(隐式的无参构造函数)

6、内置类型成员变量在类中声明时可以给默认值

 


默认构造函数的意义

在两个栈实现一个队列,编译器给了初始化(在某种情况下有意义)




 析构函数

概念

对象销毁时自动调用析构函数,完成对象中的资源清理

C语言没有写Destroy,会造成内存泄漏


四个特性

  1. 析构函数名在类名前加~
  2. 无参数无返回值
  3. 一个类只能析构一个函数,析构函数不能重载
  4. 在生命周期结束时自动调用
  • 析构函数内置类型不做处理自定义类型调用它的析构
  • 析构函数可以显式写

 


小结

  1. 有资源清理(开空间)才需要析构函数;如Stack、Queue
  2. 有两种场景不需要显式析构,用默认生成的就OK了
  • ①没有资源清理,如Date
  • ②内置类型成员没有资源需要清理,剩下的都是自定义类型成员;如MyQueue



 拷贝构造函数

概念

用同类型的对象拷贝初始化


三个特性

  1. 拷贝构造函数是构造函数的一个重载形式
  2. 拷贝构造函数的参数只有一个且必须是类类对象的引用,使用传值方式编译器直接报错,会引发无穷递归
  3. 未显式定义,编译器会默认生成拷贝构造函数


总结

  1. 一般情况下,不需要显式写析构函数,就不用写拷贝构造函数(值拷贝)
  2. 如果 内部有指针 或者 一些值指向资源,需要显式写析构函数释放,需要写构造完成深拷贝; 如Satck、Queue、List




 赋值运算符重载

运算符重载


相等操作符重载函数(比较Date中的两个对象是否相等) 

在全局中

全局中写 operator== 函数,要屏蔽 Date类 中private

那封装性如何保证?友元 重载成员函数 解决

这里讲的是重载成员函数,把 内置类型成员 公有,这样在全局中函数就能 访问 内置类型成员

在类中

注意点

在主函数中


this 和 *this 的区别

赋值运算符重载

赋值运算符重载格式


 注意点


赋值运算符重载 和 拷贝构造函数 的区别


 传值返回 和 传引用返回 的区别

传值返回 会生成当前对象的一个拷贝,拷贝一个临时对象
引用返回 生成某别名,出了作用域就销毁了
总结 虽然引用返回减少了拷贝,但出了函数作用域,返回对象还在才能用引用(在静态)


前置++ 和 后置++ 重载




const成员

含义

const修饰的是*this,本质上是改变this的类型

在哪用

  1. 运算符重载
  2. 不改变自身

取地址及const取地址操作符重载

不显式实现,编译器默认生成




日期类的实现

Date.h

#pragma once#include<iostream>
#include<stdlib.h>
using namespace std;class Date
{// 友元函数,可以访问私有friend ostream& operator<<(ostream& out, const Date& d);friend istream& operator>>(istream& in, Date& d);public:// 构造函数Date(int year, int month, int day);// 打印void Print();// 运算符重载// 实现</>,==就可以了,其他的复用(要建立栈帧,内联,不能声明和定义分离,在类里面定义就是内联)bool operator==(const Date& d) const;bool operator!=(const Date& d) const;bool operator>(const Date& d) const;bool operator>=(const Date& d) const;bool operator<(const Date& d) const;bool operator<=(const Date& d) const;static int GetMonthDay(int year, int month){int GetMonthDayArr[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };if (month == 2 && (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){return 29;}else return GetMonthDayArr[month];}// 检查日期是否正确bool checkDate(){if (_month < 1 || _month > 12 || _day <= 0 || _day > GetMonthDay(_year, _month)) return false;else return true;}// 日期 + 天数Date& operator+=(int day);Date operator+(int day) const;// 日期 - 天数Date& operator-=(int day);Date operator-(int day) const;// 前置++Date& operator++();// 后置++Date operator++(int) const;// 前置--Date& operator--();// 后置--Date operator--(int) const;// d1 - d2int operator-(const Date& d) const;private:int _year;int _month;int _day;
};// 流插入重载
ostream& operator<<(ostream& out, const Date& d);
// 流提取重载
istream& operator>>(istream& in, Date& d);

Date.cpp

#define _CRT_SECURE_NO_WARNINGS 1#define _CRT_SECURE_NO_WARNINGS 1#include"Date.h"Date::Date(int year, int month, int day)
{//cout << "Date(int year, int month, int day)" << endl;_year = year;_month = month;_day = day;
}void Date::Print()
{cout << _year << "-" << _month << "-" << _day << endl;
}bool Date::operator==(const Date& d) const
{return 	this->_year == d._year&& this->_month == d._month&& this->_day == d._day;
}bool Date::operator!=(const Date& d) const
{return !(*this == d);
}bool Date::operator>(const Date& d) const
{if (this->_year > d._year) return true;else if (this->_year == d._year && this->_month > d._month) return true;else if (this->_year == d._year && this->_month == d._month && this->_day > d._day) return true;return false;
}bool Date::operator>=(const Date& d) const
{return *this > d || *this == d;
}bool Date::operator<(const Date& d) const
{return !(*this >= d);
}bool Date::operator<=(const Date& d) const
{return !(*this > d);
}// 日期 + 天数
Date& Date::operator+=(int day)
{if (day < 0) return *this -= -day;_day += day;while (_day > GetMonthDay(_year, _month)){_day -= GetMonthDay(_year, _month);++_month;if (_month == 13){++_year;_month = 1;}}return *this;
}Date Date::operator+(int day) const
{Date tmp = *this;tmp += day;return tmp;
}Date& Date::operator-=(int day)
{if (day < 0) return *this += -day;_day -= day;while (_day <= 0){--_month;if (_month == 0){_month = 12;--_year;}_day += GetMonthDay(_year, _month);}return *this;
}Date Date::operator-(int day) const
{Date tmp = *this;tmp -= day;return tmp;
}// 前置++
Date& Date::operator++()
{*this += 1;return *this;
}// 后置++
Date Date::operator++(int) const
{Date tmp = *this;tmp += 1;return tmp;
}// 前置--
Date& Date::operator--()
{*this -= 1;return *this;
}// 后置--
Date Date::operator--(int) const
{Date tmp = *this;tmp -= 1;return tmp;
}int Date::operator-(const Date& d) const
{Date max = *this;Date min = d;int n = 0, flag = 1;if (*this < d){max = d;min = *this;flag = -1;}while (min != max){++min;++n;}return flag * n;
}//ostream& Date::operator<<(ostream& out)
//{
//	out << _year << "-" << _month << "-" << _day << endl;
//	return out;
//}ostream& operator<<(ostream& out, const Date& d)
{out << d._year << "-" << d._month << "-" << d._day << endl;return out;
}istream& operator>>(istream& in, Date& d)
{cout << "请输入年、月、日:";in >> d._year >> d._month >> d._day;if (!d.checkDate()) {cout << "输入的日期无效,请重新输入。" << endl;in.clear(); // 清除错误标志in.ignore(numeric_limits<streamsize>::max(), '\n'); // 忽略错误输入直到下一个换行符return in;}return in;
}

Test.cpp

#define _CRT_SECURE_NO_WARNINGS 1#include"Date.h"
void test1()
{Date d1(2024, 9, 26);Date d2(2024, 9, 26);bool ret1 = d1 > d2;bool ret2 = d1 >= d2;bool ret3 = d1 < d2;bool ret4 = d1 <= d2;bool ret5 = d1 == d2;bool ret6 = d1 != d2;cout << ret1 << endl;cout << ret2 << endl;cout << ret3 << endl;cout << ret4 << endl;cout << ret5 << endl;cout << ret6 << endl;
}void test2()
{Date d1(2024, 9, 26);Date d2(2024, 9, 26);// +=	// 11-15Date tmp = d1 -= -100;d1.Print();//tmp.Print();+ //Date tmp2 = d2 + 50;//d2.Print();		// 9-26//tmp2.Print();	// 11-15//Date d3(2024, 9, 26);//Date d4(2024, 9, 26);-=	//8-7//Date tmp3 = d3 -= 50;//d3.Print();//tmp3.Print();- //Date tmp4 = d4 - 50;//d4.Print();//tmp4.Print();
}void test3()
{Date d1(2024, 9, 26);Date d2(2024, 9, 26);Date tmp = --d1;d1.Print();tmp.Print();Date tmp2 = d2--;d2.Print();tmp2.Print();
}void test4()
{Date d1(2024, 9, 26);Date d2(2024, 10, 1);int ret = d1 - d2;cout << ret << endl;
}void test5()
{// 流插入和流提取 / 内置类型 直接用,为什么?//cout << "1";//printf("2");//cout << "3";//printf("4");Date d1(2024, 9, 26);//d1 << cout;	// 类中cout << d1;		// 全局
}void test6()
{Date d1(2024,9,27);Date d2(2024,10,1);cin >> d1 >> d2;cout << d1 << d2;
}void test7()
{const Date d1(2024, 9, 27);Date d2(2024, 9, 27);bool d3 = d1 > d2;Date d4 = d1 - 10;
}int main()
{//test1();//test2();//test3();//test4();//test5();//test6();test7();
}



 

 ***********************************************************分割线*****************************************************************************
完结!!!
感谢浏览和阅读。

等等等等一下,分享最近喜欢的一句话:

“我从来没有后悔对任何人好,哪怕看错人,哪怕被辜负,哪怕撞南墙,因为我对你好不代表你有多好,只是因为,我很好!”。

我是白子寰,如果你喜欢我的作品,不妨你留个点赞+关注让我知道你曾来过。
你的点赞和关注是我持续写作的动力!!! 
好了划走吧。

相关文章:

【C++打怪之路Lv4】-- 类和对象(中)

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;C打怪之路&#xff0c;python从入门到精通&#xff0c;数据结构&#xff0c;C语言&#xff0c;C语言题集&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文(平均质量分82)&#…...

滚雪球学MySQL[1.1讲]:MySQL简介与环境配置

全文目录&#xff1a; 前言1. MySQL简介与环境配置1.1 MySQL简介什么是MySQLMySQL的历史和版本MySQL的应用场景 1.2 安装与配置安装MySQL&#xff08;Windows、Linux、macOS&#xff09;配置文件解析&#xff08;my.cnf&#xff09;启动与停止MySQL服务 1.3 MySQL客户端工具MyS…...

Llama微调以及Ollama部署

1 Llama微调 在基础模型的基础上&#xff0c;通过一些特定的数据集&#xff0c;将具有特定功能加在原有的模型上。 1.1 效果对比 特定数据集 未使用微调的基础模型的回答 使用微调后的回答 1.2 基础模型 基础大模型我选择Mistral-7B-v0.3-Chinese-Chat-uncensored&#x…...

中关村环球时尚产业联盟 东晟时尚产业创新中心成立

2024年9月6日&#xff0c;中关村环球时尚产业联盟与东晟时尚创新科技&#xff08;北京&#xff09;有限公司于中关村科技园东城园举行了隆重的战略合作签约仪式。 中关村科技园东城园领导发表了致辞&#xff0c;并表示东城区作为首都北京的核心区域&#xff0c;拥有深厚的历史…...

基于SSM的宠物领养管理系统的设计与实现 (含源码+sql+视频导入教程+文档+PPT)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的宠物领养管理系统2拥有两种角色 管理员&#xff1a;宠物分类管理、领养管理、宠物商品管理、用户管理、寄存管理、丢失信息管理、订单管理等 用户&#xff1a;登录注册、收藏评…...

为什么要配置环境变量?

在 Windows 操作系统中配置环境变量有多个重要的原因&#xff0c;这些原因与软件开发、系统管理和日常使用密切相关。以下是一些主要的原因&#xff1a; 1. 系统路径&#xff08;PATH&#xff09; 可执行文件的位置&#xff1a;PATH 环境变量用于指定操作系统在何处查找可执行…...

条件熵公式详细解释、举例说明计算步骤

公式 7-4 是条件熵的表达式&#xff1a; E ( Y ∣ X ) ∑ i 1 m p ( X x i ) E ( Y ∣ X x i ) E(Y|X) \sum_{i1}^m p(X x_i) E(Y | X x_i) E(Y∣X)i1∑m​p(Xxi​)E(Y∣Xxi​) 这个公式表示的是条件熵&#xff0c;它是衡量在已知某一特征 X X X 的情况下&#xff0c…...

颍川陈氏始祖陈寔逆势崛起的原由(一)不屈的努力

园子说颍川 按陈寔的出身&#xff0c;与当官是风马牛不相及的。 东汉末年的社会&#xff0c;朝中外戚、宦官当道&#xff0c;地方则由世家大族把持&#xff0c;郡县的政治经济资源都由他们掌控分配&#xff0c;平民以及中小地主很难有出头之日&#xff0c;弄不好就被兼并了。…...

golang小项目1-家庭收支记账系统

项目地址&#xff1a;golang小项目 参考资料&#xff1a;尚硅谷golang教程P229 家庭收支记账系统 1. 系统简介 1.1 项目背景 在现代社会中&#xff0c;家庭的财务管理显得尤为重要。随着生活成本的不断上升&#xff0c;家庭需要有效地记录和分析收支情况&#xff0c;以确保…...

Visual Studio Code下载安装及汉化

官网&#xff1a;https://code.visualstudio.com/ 按照指示一步步操作即可&#xff1a; 汉化&#xff1a;...

MySQL—触发器详解

基本介绍 触发器是与表有关的数据库对象&#xff0c;在 INSERT、UPDATE、DELETE 操作之前或之后触发并执行触发器中定义的 SQL 语句。 触发器的这种特性可以协助应用在数据库端确保数据的完整性、日志记录、数据校验等操作。 使用别名 NEW 和 OLD 来引用触发器中发生变化的记…...

钉钉H5微应用Springboot+Vue开发分享

文章目录 说明技术路线注意操作步骤思路图 一、创建钉钉应用二、创建java项目三、创建vue项目&#xff08;或uniapp项目&#xff09;&#xff0c;npm引入sdk的依赖四、拥有公网域名端口。开发环境可以使用&#xff08;贝锐花生壳等工具&#xff09;五、打开钉钉开发者平台&…...

项目:微服务即时通讯系统客户端(基于C++QT)]四,中间界面搭建和逻辑准备

四&#xff0c;中间界面搭建 前言:当项目越来越复杂的时候&#xff0c;或许画草图是非常好的选择 一&#xff0c;初始化中间窗口initMidWindow void mainWidget::initMidWindow() {//使用网格布局进行管理QGridLayout* layout new QGridLayout();//距离上方 20px 的距离&…...

【C语言】指针详解(一)

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1.内存与地址2.指针变量与地址2.1 取地址操作符&2.2 指针变量2.3 指针类型2.4 解引用操作符2.5 指针变量的大小 3. 指针变量类型的意义3.1 指针的解引用 4. const修饰指针4.1 const修饰变量4.2 const修饰指针变量…...

unity3D雨雪等粒子特效不穿透房屋效果实现(粒子不穿透模型)

做项目有时候会做天气模拟,模拟雨雪天气等等。但是容易忽略一个问题,就是房屋内不应该下雨或者下雪,这样不就穿帮了嘛。 下面就粒子穿透物体问题做一个demo。 正常下雨下雪在室内的话,你可以看到,粒子是穿透建筑的。 那要怎么模拟真实的雨雪天气,不让粒子穿透房屋建筑呢…...

ROS2安装cartographer

2. 安装Cartographer和Cartographer ROS 使用apt安装&#xff08;推荐&#xff09;&#xff1a; bash sudo apt install ros-humble-cartographer-ros或者&#xff0c;从源代码安装&#xff1a; bash sudo apt-get update sudo apt-get install -y python3-wstool python3…...

kafka测试

1】确认 ZooKeeper 服务状态 为了进一步确认 ZooKeeper 服务的状态&#xff0c;你可以执行以下操作&#xff1a; 检查 ZooKeeper 服务状态&#xff1a; docker ps 确保 ZooKeeper 容器正在运行。 检查 ZooKeeper 日志&#xff1a; docker logs zookeeper 查看最新的日志条目&…...

总结C/C++中内存区域划分

目录 1.C/C程序内存分配主要的几个区域&#xff1a; 2.内存分布图 1.C/C程序内存分配主要的几个区域&#xff1a; 1、栈区 2、堆区 3、数据段&#xff08;静态区&#xff09; 4.代码段 2.内存分布图 如图&#xff1a; static修饰静态变量成员——放在静态区 int globalVar 是…...

第168天:应急响应-ELK 日志分析系统Yara规则样本识别特征提取规则编写

目录 案例一&#xff1a;ELK 搭建使用-导入文件&监控日志&语法筛选 案例二&#xff1a;Yara 规则使用-规则检测&分析特征&自写规则 案例一&#xff1a;ELK 搭建使用-导入文件&监控日志&语法筛选 该软件是专业分析日志的工具&#xff0c;但是不支持安…...

MySQL 面试题及答案

MySQL 面试题及答案&#xff1a; 一、基础问题 什么是数据库索引&#xff1f;有哪些类型&#xff1f; 答&#xff1a;数据库索引是一种数据结构&#xff0c;用于提高数据库查询的效率。它就像一本书的目录&#xff0c;可以快速定位到特定的数据行。 类型主要有&#xff1a; …...

vue仿chatGpt的AI聊天功能--大模型通义千问(阿里云)

vue仿chatGpt的AI聊天功能–大模型通义千问&#xff08;阿里云&#xff09; 通义千问是由阿里云自主研发的大语言模型&#xff0c;用于理解和分析用户输入的自然语言。 1. 创建API-KEY并配置环境变量 打开通义千问网站进行登录&#xff0c;登陆之后创建api-key&#xff0c;右…...

养老院管理系统(含源码+sql+视频导入教程+文档)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 养老院管理系统拥有两种角色&#xff1a;管理员和护工 管理员&#xff1a;用户管理、老人信息管理、事故记录管理、入住费用管理、护工薪资管理、护工请假管理、床位管理、请假管理等 护…...

大数据的挑战是小文件

小文件可能会给存储平台及其支持的应用程序带来大问题。在 Google 上搜索 “small files performance” 会产生 2M 的结果。这篇博文将更深入地研究小文件问题&#xff0c;深入研究其根源并总结解决方案。 问题陈述 出于本讨论的目的&#xff0c;小文件通常被视为小于 64 KB …...

迁移学习案例-python代码

大白话 迁移学习就是用不太相同但又有一些联系的A和B数据&#xff0c;训练同一个网络。比如&#xff0c;先用A数据训练一下网络&#xff0c;然后再用B数据训练一下网络&#xff0c;那么就说最后的模型是从A迁移到B的。 迁移学习的具体形式是多种多样的&#xff0c;比如先用A训练…...

MCUboot 和 U-Boot区别

MCUboot 和 U-Boot 都是用于嵌入式系统的引导加载程序&#xff0c;但它们在一些方面存在区别&#xff1a; 功能特性 安全特性侧重不同 MCUboot &#xff1a;更专注于安全引导方面&#xff0c;强调安全启动、固件完整性验证和加密等安全功能。它提供了强大的安全机制来防止恶意…...

Apache OFBiz SSRF漏洞CVE-2024-45507分析

Apache OFBiz介绍 Apache OFBiz 是一个功能丰富的开源电子商务平台&#xff0c;包含完整的商业解决方案&#xff0c;适用于多种行业。它提供了一套全面的服务&#xff0c;包括客户关系管理&#xff08;CRM&#xff09;、企业资源规划&#xff08;ERP&#xff09;、订单管理、产…...

计算机毕业设计 饮食营养管理信息系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…...

828华为云征文|华为云Flexus云服务器X实例部署——盲盒抽奖商城系统以及编译发布小程序

盲盒抽奖商城系统使用 thinkphp6.0 uniapp 开发&#xff0c;做到了全移动端兼容。一个系统不仅可以打包 小程序 还可以 打包APP &#xff0c;H5 华为云Flexus云服务器X实例在安装搭建盲盒商城小程序方面具有显著优势&#xff0c;这些优势主要体现在以下几个方面&#xff1a; …...

优化理论及应用精解【12】

文章目录 最优化基础基本概念一、目标函数二、约束条件三、约束函数 可行域与可行点可行点可行域可行点与可行域的关系示例 最优值与可行域的关系1. 最优值一定在可行域内取得2. 可行域定义了最优解的搜索空间3. 最优值的存在性与可行域的性质有关4. 最优值与可行域的边界关系示…...

excel 填充内容的公式

多行填充快捷方式&#xff1a; 使用“CtrlEnter”键&#xff0c;这样所有选中的空单元格前就会自动添加上相同的字符。 对于多行填充&#xff0c;Excel提供了几个快捷键来提高工作效率&#xff1a; “CtrlR”用于向右填充数据。如果你在表格的某一列输入了数据&#xff0c;选…...

西安网站建设网站建设/网站seo优化运营

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…...

wordpress字典/百度云超级会员试用1天

基于人脸识别的移动支付方式-刷脸支付&#xff0c;随着人脸识别技术的发展和应用逐渐在零售、餐饮等消费场景上线应用。而且刷脸支付可结合自助收银系统实现刷脸支付自助收银应用。那么&#xff0c;刷脸支付自助收银怎么助力零售门店&#xff1f; 刷脸支付自助收银使收银结账…...

惠州市人民政府门户网站/专业网站制作

多值逻辑是把线序多值逻辑推广到任意格值上去&#xff0c;有多于两个的可能的真值的逻辑演算&#xff0c;其中布尔值逻辑(见逻辑代数)就是一种有趣的多值逻辑。中文名多值逻辑外文名many-valued logic定 义一种非经典的逻辑系统简 介有多于两个的真值的逻辑演算多值逻辑简…...

做国际网站怎么发货/全球外贸b2b网站

单页面应用&#xff08;SinglePage Web Application&#xff0c;SPA&#xff09;只有一张Web页面的应用&#xff0c;是一种从Web服务器加载的富客户端&#xff0c;单页面跳转仅刷新局部资源 &#xff0c;公共资源(js、css等)仅需加载一次&#xff0c;常用于PC端官网、购物等网站…...

加强网站建设 基本措施/搜索引擎优化的内部优化

9.9 NOIP模拟题 T1 两个圆的面积求并 /* 计算圆的面积并 多个圆要用辛普森积分解决 这里只有两个&#xff0c;模拟计算就好 两圆相交时&#xff0c;面积并等于中间两个扇形面积减去两个三角形面积 余弦定理求角度&#xff0c;算出三角形面积 */ #include<cstdio> #inclu…...

wordpress 5.2.2/百度官方网址

文章目录1、什么是弱网测试2、弱网环境的影响3、弱网环境测试场景4、使用Fiddler进行弱网测试&#xff08;1&#xff09;Fiddler模拟弱网环境&#xff08;2&#xff09;设置弱网的参数&#xff08;3&#xff09;进行弱网测试对比&#xff08;4&#xff09;恢复设置5、补充&…...