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

2023/9/12 -- C++/QT

作业

实现一个图形类(Shape),包含受保护成员属性:周长、面积,

                公共成员函数:特殊成员函数书写

定义一个圆形类(Circle),继承自图形类,包含私有属性:半径

                公共成员函数:特殊成员函数、以及获取周长、获取面积函数

定义一个矩形类(Rect),继承自图形类,包含私有属性:长度、宽度

                公共成员函数:特殊成员函数、以及获取周长、获取面积函数

在主函数中,分别实例化圆形类对象以及矩形类对象,并测试相关的成员函数。

 03hmwk.h:

#ifndef __03HMWK_H__
#define __03HMWK_H__#include <iostream>
#define PI 3.14
using namespace std;class Shape{
protected:double circumference;double size;
public://无参构造Shape();//有参构造Shape(double c,double s);//析构~Shape();//拷贝构造Shape(const Shape &other);
//    //移动构造
//    Shape(Shape && other);//拷贝赋值Shape & operator=(const Shape &other);
//    //移动赋值
//    Shape & operator=(Shape && other);
};class Circle:public Shape{
private:double radius;
public://无参构造Circle();//有参构造Circle(double r);//析构~Circle();//拷贝构造Circle(const Circle &other);
//    //移动构造
//    Circle(Circle && other);//拷贝赋值Circle & operator=(const Circle &other);
//    //移动赋值
//    Circle & operator=(Circle && other);//获取周长double get_C();//获取面积double get_S();
};class Rectangle:public Shape{
private:double length;double width;
public://无参构造Rectangle();//有参构造Rectangle(double l,double w);//析构~Rectangle();//拷贝构造Rectangle(const Rectangle &other);
//    //移动构造
//    Rectangle(Rectangle && other);//拷贝赋值Rectangle & operator=(const Rectangle &other);
//    //移动赋值
//    Rectangle & operator=(Rectangle && other);//获取周长double get_C();//获取面积double get_S();
};#endif // 03HMWK_H

03hmwk.cpp:

#include <03hmwk.h>
//无参构造
Shape::Shape():circumference(0),size(0){cout<<"Shape::无参构造"<<endl;
}
//有参构造
Shape::Shape(double c,double s):circumference(c),size(s){cout<<"Shape::有参构造"<<endl;
}
//析构
Shape::~Shape(){cout<<"Shape::析构"<<endl;
}
//拷贝构造
Shape::Shape(const Shape &other):circumference(other.circumference),size(other.size){cout<<"Shape::拷贝构造"<<endl;
}
移动构造
//Shape::Shape(Shape && other):circumference(other.circumference),size(other.size){
//    cout<<"Shape::移动构造"<<endl;
//}
//拷贝赋值
Shape & Shape::operator=(const Shape &other){if(this != &other){circumference = other.circumference;size = other.size;}cout<<"Shape::拷贝赋值"<<endl;return *this;
}
移动赋值
//Shape & Shape::operator=(Shape && other){
//    circumference = other.circumference;
//    size = other.size;
//    cout<<"Shape::移动赋值"<<endl;
//    return *this;
//}/**********************************圆*************************************************///无参构造
Circle::Circle():Shape(0,0),radius(0){cout<<"Circle::无参构造"<<endl;
}
//有参构造
Circle::Circle(double r):Shape(2*PI*r,PI*r*r),radius(r){cout<<"Circle::有参构造"<<endl;
}
//析构
Circle::~Circle(){cout<<"Circle::析构"<<endl;
}
//拷贝构造
Circle::Circle(const Circle &other):Shape(other),radius(other.radius){cout<<"Circle::拷贝构造"<<endl;
}
移动构造
//Circle::Circle(Circle && other):Shape(other),radius(other.radius){
//    cout<<"Circle::移动构造"<<endl;
//}
//拷贝赋值
Circle & Circle::operator=(const Circle &other){if(this != &other){Shape::operator=(other);radius = other.radius;}cout<<"Circle::拷贝赋值"<<endl;return *this;
}
移动赋值
//Circle & Circle::operator=(Circle && other){
//    (Shape)other = Shape(other);
//    radius = other.radius;
//    cout<<"Circle::移动赋值"<<endl;
//    return *this;
//}
//获取周长
double Circle::get_C(){return circumference;
}
//获取面积
double Circle::get_S(){return size;
}/***********************************矩形************************************************///无参构造
Rectangle::Rectangle():Shape(0,0),length(0),width(0){cout<<"Rectangle::无参构造"<<endl;
}
//有参构造
Rectangle::Rectangle(double l,double w):Shape(2*(l+w),l*w),length(l),width(w){cout<<"Rectangle::有参构造"<<endl;
}
//析构
Rectangle::~Rectangle(){cout<<"Rectangle::析构"<<endl;
}
//拷贝构造
Rectangle::Rectangle(const Rectangle &other):Shape(other),length(other.length),width(other.width){cout<<"Rectangle::拷贝构造"<<endl;
}
移动构造
//Rectangle::Rectangle(Rectangle && other):Shape(other),length(other.length),width(other.width){
//    cout<<"Rectangle::移动构造"<<endl;
//}
//拷贝赋值
Rectangle & Rectangle::operator=(const Rectangle &other){if(this != &other){Shape::operator=(other);length = other.length;width = other.width;}cout<<"Rectangle::拷贝赋值"<<endl;return *this;
}
移动赋值
//Rectangle & Rectangle::operator=(Rectangle && other){
//    (Shape)other = Shape(other);
//    length = other.length;
//    width = other.width;
//    cout<<"Rectangle::移动赋值"<<endl;
//    return *this;
//}
//获取周长
double Rectangle::get_C(){return circumference;
}
//获取面积
double Rectangle::get_S(){return size;
}

main.cpp:

#include <03hmwk.h>int main()
{Circle c1(5);cout<<"c1.C = "<<c1.get_C()<<endl;cout<<"c1.S = "<<c1.get_S()<<endl;Rectangle r1(5,4);cout<<"r1.C = "<<r1.get_C()<<endl;cout<<"r1.S = "<<r1.get_S()<<endl;Circle c2 = c1;cout<<"c2.C = "<<c2.get_C()<<endl;cout<<"c2.S = "<<c2.get_S()<<endl;Rectangle r2 = r1;cout<<"r2.C = "<<r2.get_C()<<endl;cout<<"r2.S = "<<r2.get_S()<<endl;Circle c3;c3 = c2;cout<<"c3.C = "<<c3.get_C()<<endl;cout<<"c3.S = "<<c3.get_S()<<endl;Rectangle r3;r3 = r2;cout<<"r3.C = "<<r3.get_C()<<endl;cout<<"r3.S = "<<r3.get_S()<<endl;
//    Circle c4 = move(c3);
//    cout<<"c4.C = "<<c4.get_C()<<endl;
//    cout<<"c4.S = "<<c4.get_S()<<endl;
//    Rectangle r4 = move(r3);
//    cout<<"r4.C = "<<r4.get_C()<<endl;
//    cout<<"r4.S = "<<r4.get_S()<<endl;
//    Circle c5;
//    c5 = move(c4);
//    cout<<"c5.C = "<<c5.get_C()<<endl;
//    cout<<"c5.S = "<<c5.get_S()<<endl;
//    Rectangle r5;
//    r5 = move(r4);
//    cout<<"r5.C = "<<r5.get_C()<<endl;
//    cout<<"r5.S = "<<r5.get_S()<<endl;return 0;
}

 效果图:

一、静态成员(static)

程序员有时在实例化对象时,想让某个成员或某几个成员独立于类对象而存在,但是又属于类对象的属性,不占用类对象的空间,那么此时我们可以将这些成员设置成静态成员,相当于在类体内定义一个全局的成员。静态成员分为静态成员变量和静态成员函数。

1.1 静态成员变量

  1. 定义格式:在定义成员变量时,在前面加关键字static,那么该变量就是静态成员变量
  2. 静态成员变量一般声明成public权限,并且需要在类内声明,类外定义,定义时如果不初始化,默认为0,
  3. 静态成员变量,不依附于类对象而存在,不占用类对象的空间,在编译时,系统在静态区为其分配空间
  4. 静态成员变量也是每个类对象拥有的属性,一个对象对其更改,所有对象的该属性都会更改
  5. 使用方式:每个类对象都可以使用成员运算符进行调用,也可以通过类名加作用域限定符直接调用
  6. 静态成员变量,从功能上来说相当于全局变量,但是相比于全局变量更能体现类的封装性
#include <iostream>using namespace std;
class Stu
{
private:int age;
public:static int score;            //在类内声明Stu() {}
};//在类外定义一下静态成员变量
int Stu::score = 100;int main()
{Stu::score = 50;                  //通过 类名直接访问类中的静态成员变量Stu s;cout<<"score = "<<s.score<<endl;cout<<"sizeof s = "<<sizeof (s)<<endl;       //4字节,静态成员变量不占用类对象的空间Stu s1;cout<<"score = "<<s1.score<<endl;      //100Stu s2;s2.score = 90;                                //一个对象的该值进行改变,所有对象的该值都跟着改变cout<<"score = "<<s.score<<endl;cout<<"score = "<<s1.score<<endl;return 0;
}

1.2 静态成员函数

  1. 定义格式:在定义成员函数前加关键static,那么该函数就是静态成员函数
  2. 静态成员函数相当于在类体中定义一个全局函数,但是,只能是该类对象或者该类进行调用
  3. 静态成员函数的调用:可以使用类对象通过成员运算符进行调用也可以使用类名直接进行调用
  4. 静态成员函数中,没有this指针
  5. 静态成员函数,不依赖于类对象而存在,所以也可以不实例化对象,直接使用类名进行调用
  6. 在静态成员函数中,只能使用静态成员变量不能使用非静态成员变量
#include <iostream>using namespace std;
class Stu
{
private:int age;
public:static int score;            //在类内声明Stu() {}Stu(int a):age(a) {}//该函数是静态成员函数static void show(){//cout<<"age = "<<age<<endl;           //在静态成员函数中不能使用非静态成员变量cout<<"score = "<<score<<endl;        //可以使用静态成员变量}//静态成员函数和同名的非静态成员函数不构成重载关系,原因是作用域不同
//    void show()
//    {
//        cout<<"age = "<<age<<endl;           //在静态成员函数中不能使用非静态成员变量
//        cout<<"score = "<<score<<endl;        //可以使用静态成员变量
//    }
};//在类外定义一下静态成员变量
int Stu::score = 100;int main()
{Stu::score = 50;                  //通过 类名直接访问类中的静态成员变量Stu s;cout<<"score = "<<s.score<<endl;cout<<"sizeof s = "<<sizeof (s)<<endl;       //4字节,静态成员变量不占用类对象的空间Stu s1;cout<<"score = "<<s1.score<<endl;      //100Stu s2;s2.score = 90;                                //一个对象的该值进行改变,所有对象的该值都跟着改变cout<<"score = "<<s.score<<endl;cout<<"score = "<<s1.score<<endl;cout<<"********************************************************"<<endl;Stu s3(18);s3.show();            //通过类对象调用静态成员函数Stu::show();            //通过函数名直接调用静态成员函数return 0;
}

二、继承(inherit)

2.1 继承的概念

1> 所谓继承,就是在一个类的基础上去定义另一个新类的过程叫做继承

2> 作用:

  1. 继承能够提高代码的复用性
  2. 继承是实现多态的必要条件

2.2 继承格式

class  子类名:继承方式  父类名
{//子类拓展的成员
}
继承方式有三种:public、protected、private子类:也叫派生类
父类:也叫基类

2.3 继承方式对类中成员的权限的影响

父类中                    public|protected|private|不能访问                public|protected|private|不能访问          public|protected|private|不能访问         
继承方式                            public                                            protected                                   private
子类中                    public|protected|不能访问|不能访问                protected|protected|不能访问|不能访问       private|private|不能访问|不能访问

总结:

  1. 所谓继承方式,其实就是父类中的成员的访问权限在子类中的最高权限
  2. 如果继承过程中没有加访问权限,默认是私有继承
  3. 常用的继承方式是public
  4. 在所有继承方式中,都不能在子类中访问父类的私有成员以及父类不能访问的成员

2.4 子类会继承父类中的所有成员

1> 子类会继承父类中的所有成员,包括私有成员,只是私有成员不能访问而已

2> 父类和子类是不同的类

3> 为了对子类从父类中继承下来成员进行初始化工作,需要在子类的构造函数初始化列表中显性调用父类的有参构造完成,否则系统会自动调用父类的无参构造,此时,如果父类没有无参构造,则系统报错

4> 在这个过程中,虽然调用了父类的构造函数,但是,并没有实例化一个父类对象

#include <iostream>using namespace std;class Person
{
public:string name;
protected:int value;
private:double money;            //私房钱public:Person() {cout<<"Person::无参构造"<<endl;}Person(string n, int v, double m):name(n),value(v),money(m) {cout<<"Person::有参构造"<<endl;}void show(){cout<<"Person::name = "<<name<<endl;          //自己类中的公有成员,自己类内可以访问cout<<"Person::value = "<<value<<endl;       //自己类中的受保护成员,自己类内可以访问cout<<"Person::money = "<<money<<endl;           //自己类中的私有成员,自己类内可以访问}
};//定义一个员工类,继承自人类
class Worker:public Person           //公有继承
/*class Worker:protected Person*/            //受保护继承
//class Worker:private Person
{
private:double salary;           //工资public:Worker() {cout<<"Worker::无参构造"<<endl;}//需要在子类的构造函数中显性调用父类的有参构造完成对子类从父类中继承下来的成员的初始化Worker(string n, int v, double m, double s):Person(n,v,m), salary(s){
//        name = n;
//        value = v;
//        money = m;cout<<"Worker::有参构造"<<endl;}void display(){cout<<"Worker::name = "<<name<<endl;       //继承下来的公有成员,子类中还是公有成员,子类内可以访问cout<<"Worker::value = "<<value<<endl;      //继承下来的受保护成员,子类中还是受保护成员,子类内可以访问//cout<<"Worker::money = "<<money<<endl;     //继承下来的父类私有成员,子类中不可访问cout<<"Worker::salary = "<<salary<<endl;      //自己的私有成员,类内可以访问}
};int main()
{//cout << sizeof(Worker) << endl;// Worker w;//   cout<<"w.name = "<<w.name<<endl;         //继承下来的公有成员,子类中也是公有的,类外可以被访问//   cout<<"w.value = "<<w.value<<endl;      //继承下来的受保护成员,子类中也是受保护的,子类外不能被访问
//    cout<<"w.money = "<<w.money<<endl;      //继承下来的私有成员,子类中不能被访问,类外不能被访问
//    cout<<"w.salary = "<<w.salary<<endl;    //子类的私有成员,子类外无法访问Worker w1("zhangpp", 520, 1, 100);w1.display();w1.show();return 0;
}

2.5 类的关系模型

1> has - a模型

包含关系,一个类中包含另一个类的成员对象

2> use - a模型

友元关系,将某个类设置成友元,那么另一个类就可以使用自己的所有权限下的成员

3> is - a模型

继承关系,并且,is-a模型是特殊的has-a模型

2.6 类的继承步骤

1> 全盘吸收父类

2> 改造父类:继承方式、通过using关键字改变

3> 拓展新成员

#include <iostream>using namespace std;class Person
{
public:string name;    
protected:int salary;    
private:int money;    
public:Person() {}
};//定义学生类继承自Person
class Stu:public Person
{
protected:using Person::name;        //将继承的name的权限更改成受保护权限public:using Person::salary;         //将继承的salary权限更改成公共权限//using Person::money;          //父类的私有成员不能进行改造double score;              //拓展新成员public:Stu() {}};int main()
{Stu s;//s.name = "hello";//s.salary = 1000;return 0;
}

相关文章:

2023/9/12 -- C++/QT

作业 实现一个图形类&#xff08;Shape&#xff09;&#xff0c;包含受保护成员属性&#xff1a;周长、面积&#xff0c; 公共成员函数&#xff1a;特殊成员函数书写 定义一个圆形类&#xff08;Circle&#xff09;&#xff0c;继承自图形类&#xff0c;包含私有属性&#xf…...

【Purple Pi OH RK3566鸿蒙开发板】OpenHarmony音频播放应用,真实体验感爆棚!

本文转载于Purple Pi OH开发爱好者&#xff0c;作者ITMING 。 原文链接&#xff1a;https://bbs.elecfans.com/jishu_2376383_1_1.html 01注意事项 DevEco Studio 4.0 Beta2&#xff08;Build Version: 4.0.0.400&#xff09; OpenHarmony SDK API 9 创建工程类型选择Appli…...

Android rom开发:9.0系统上实现4G wifi 以太网共存

framework层修改网络优先级&#xff0c;4G > wifi > eth 修改patch如下&#xff1a; diff --git a/frameworks/base/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java b/frameworks/base/services/core/java/com/android/server/connectivit…...

高速自动驾驶HMI人机交互

概述 目的 本文档的目的是描述高速自动驾驶功能涉及的HMI显示需求技术规范和设计说明。 范围 术语及缩写 设计与实验标准 设计标准 设计标准-非法规类设计标准-法规类 HMI交互需求 CL4功能界面 HMI显示器[伊1] 中应包含CL4功能设置界面&#xff0c;提供给用户进行设置操作或显…...

【自然语言处理】关系抽取 —— SOLS 讲解

SOLS 论文信息 标题:Speaker-Oriented Latent Structures for Dialogue-Based Relation Extraction 作者:Guoshun Nan, Guoqing Luo, Sicong Leng, Yao Xiao, Wei Lu 发布时间与更新时间:2021.09.11 主题:自然语言处理、关系抽取、对话场景、跨语句、DialogRE、GCN arXiv:…...

周易算卦流程c++实现

代码 #include<iostream> using namespace std; #include<vector> #include<cstdlib> #include<ctime> #include<Windows.h>int huaYiXiangLiang(int all, int& left) {Sleep(3000);srand(time(0));left rand() % all 1;while (true) {if…...

软件架构设计(十三) 构件与中间件技术

中间件的定义 其实中间件是属于构件的一种。是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同技术之间共享资源。 我们把它定性为一类系统软件,比如我们常说的消息中间件,数据库中间件等等都是中间件的一种体现。一般情况都是给应用系统提供服务,而不是直接…...

PyTorch深度学习实战——基于ResNet模型实现猫狗分类

PyTorch深度学习实战——基于ResNet模型实现猫狗分类 0. 前言1. ResNet 架构2. 基于预训练 ResNet 模型实现猫狗分类相关链接 0. 前言 从 VGG11 到 VGG19&#xff0c;不同之处仅在于网络层数&#xff0c;一般来说&#xff0c;神经网络越深&#xff0c;它的准确率就越高。但并非…...

机器学习第六课--朴素贝叶斯

朴素贝叶斯广泛地应用在文本分类任务中&#xff0c;其中最为经典的场景为垃圾文本分类(如垃圾邮件分类:给定一个邮件&#xff0c;把它自动分类为垃圾或者正常邮件)。这个任务本身是属于文本分析任务&#xff0c;因为对应的数据均为文本类型&#xff0c;所以对于此类任务我们首先…...

基于Java+SpringBoot+Vue的图书借还小程序的设计与实现(亮点:多角色、点赞评论、借书还书、在线支付)

图书借还管理小程序 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序&#xff08;小蔡coding&#xff09;2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 主要功能描述 五、系统实现5.1 小…...

【校招VIP】前端计算机网络之UDP相关

考点介绍 UDP是一个简单的面向消息的传输层协议&#xff0c;尽管UDP提供标头和有效负载的完整性验证&#xff08;通过校验和&#xff09;&#xff0c;但它不保证向上层协议提供消息传递&#xff0c;并且UDP层在发送后不会保留UDP 消息的状态。因此&#xff0c;UDP有时被称为不可…...

前缀和实例4(和可被k整除的子数组)

题目&#xff1a; 给定一个整数数组 nums 和一个整数 k &#xff0c;返回其中元素之和可被 k 整除的&#xff08;连续、非空&#xff09; 子数组 的数目。 子数组 是数组的 连续 部分。 示例 1&#xff1a; 输入&#xff1a;nums [4,5,0,-2,-3,1], k 5 输出&#xff1a;7 …...

Android获取系统读取权限

第一步在Androidifest.xml文件中加上授权语句 <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE"/>并且在Application标签下添加 androi…...

输入学生成绩(最多不超过40),输入为负值时表示输入结束,统计成绩高于平均成绩的学生人数

#include<stdio.h> #define N 40 int scanfscore(int score[N]) {int i -1;do {i;printf("输入学生成绩:");scanf("%d", &score[i]);} while (score[i] > 0);return i; } int average(int score[N], int n) {int j 0;int k 0;double sum …...

【力扣周赛】第 363 场周赛(完全平方数和质因数分解)

文章目录 竞赛链接Q1&#xff1a;100031. 计算 K 置位下标对应元素的和竞赛时代码写法2——手写二进制中1的数量 Q2&#xff1a;100040. 让所有学生保持开心的分组方法数&#xff08;排序后枚举分界&#xff09;竞赛时代码 Q3&#xff1a;100033. 最大合金数&#xff08;二分答…...

RocketMQ的介绍和环境搭建

一、介绍 我也不知道是啥&#xff0c;知道有什么用、怎么用就行了&#xff0c;说到mq&#xff08;MessageQueue&#xff09;就是消息队列&#xff0c;队列是先进先出的一种数据结构&#xff0c;但是RocketMQ不一定是这样&#xff0c;简单的理解一下&#xff0c;就是临时存储的…...

【web开发】7、Django(2)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、部门列表二、部门管理&#xff08;增删改&#xff09;三、用户管理过渡到modelform组件四、modelform实例&#xff1a;靓号操作五、自定义分页组件六、datepick…...

Prometheus+Grafana可视化监控【Nginx状态】

文章目录 一、安装Docker二、安装Nginx(Docker容器方式)三、安装Prometheus四、安装Grafana五、Pronetheus和Grafana相关联六、安装nginx_exporter七、Grafana添加Nginx监控模板 一、安装Docker 注意&#xff1a;我这里使用之前写好脚本进行安装Docker&#xff0c;如果已经有D…...

R 语言的安装教程

一、下载相关软件 1、R 下载 官网&#xff1a;R: The R Project for Statistical Computing 找到中国镜像&#xff0c;下载快 历史版本点击这里 2、Rtools 下载 进入镜像后&#xff0c;点击这里 然后选择与上面下载的R版本相对应的版本即可 3、Rstudio 下载 官网&#xff1…...

uniapp-提现功能(demo)

页面布局 提现页面 有一个输入框 一个提现按钮 一段提现全部的文字 首先用v-model 和data内的数据双向绑定 输入框逻辑分析 输入框的逻辑 为了符合日常输出 所以要对输入框加一些条件限制 因为是提现 所以对输入的字符做筛选,只允许出现小数点和数字 这里用正则实现的小数点…...

Spring 篇

1、什么是 Spring&#xff1f; Spring是一个轻量级的IOC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架&#xff0c;目的是用于简化企业应用程序的开发&#xff0c;它使得开发者只需要关心业务需求。常见的配置方式有三种&#xff1a;基于XML的配置、基于注解的配置…...

three.js简单3D图形的使用

npm init vitelatest //创建一个vite的脚手架 选择 Vanilla 之后自己处理一下 在main.js中写入 // 导入three.js import * as THREE from three// 创建场景 const scene new THREE.Scene();// 创建相机 const camera new THREE.PerspectiveCamera(45, //视角window.inner…...

spark withColumn的使用(笔记)

目录 前言&#xff1a; spark withColumn的语法及使用&#xff1a; 准备源数据演示&#xff1a; 完整实例代码&#xff1a; 前言&#xff1a; withColumn()&#xff1a;是Apache Spark中用于DataFrame操作的函数之一&#xff0c;它的作用是在DataFrame中添加或替换列&#xff…...

PTA:7-1 线性表的合并

线性表的合并 题目输入样例输出样例 代码解析 题目 输入样例 4 7 5 3 11 3 2 6 3输出样例 7 5 3 11 2 6 代码 #include<iostream> #include<vector> using namespace std;bool checkrep(const vector<int>& arr, int x) {for (int element : arr) {i…...

Spring 的创建和日志框架的整合

目录 一、第一个 Spring 项目 1、配置环境 2、Spring 的 jar 包 Maven 项目导入 jar 包和设置国内源的方法&#xff1a; 3、Spring 的配置文件 4、Spring 的核心 API ApplicationContext 4、程序开发 5、细节分析 &#xff08;1&#xff09;名词解释 &#xff08;2&…...

11-集合和学生管理系统

1.ArrayList 集合和数组的优势对比&#xff1a; 长度可变添加数据的时候不需要考虑索引&#xff0c;默认将数据添加到末尾 1.1 ArrayList类概述 什么是集合 ​ 提供一种存储空间可变的存储模型&#xff0c;存储的数据容量可以发生改变 ArrayList集合的特点 ​ 长度可以变化…...

C语言进阶指针(3) ——qsort的实现

大家好&#xff0c;我们今天来学习回调函数qsort的实现。 首先让我们打开cplusplus.com找到qsort函数。 我们看到这个函数就可以看到它的头文件和参数信息。 #include<stdlib.h> void qsort (void* base, size_t num, size_t size, int (*compar)(const void*,const voi…...

Rust源码分析——Rc 和 Weak 源码详解

Rc 和 Weak 源码详解 一个值需要被多个所有者拥有 rust中所有权机制在图这种数据结构中&#xff0c;一个节点可能被多个其它节点所指向。那么如何表示图这种数据结构&#xff1f;在多线程中&#xff0c;多个线程可能会持有同一个数据&#xff1f;如何解决这个问题。 Rc rus…...

【网络编程】深入理解TCP协议二(连接管理机制、WAIT_TIME、滑动窗口、流量控制、拥塞控制)

TCP协议 1.连接管理机制2.再谈WAIT_TIME状态2.1理解WAIT_TIME状态2.2解决TIME_WAIT状态引起的bind失败的方法2.3监听套接字listen第二个参数介绍 3.滑动窗口3.1介绍3.2丢包情况分析 4.流量控制5.拥塞控制5.1介绍5.2慢启动 6.捎带应答、延时应答 1.连接管理机制 正常情况下&…...

社区团购商城小程序v18.1开源独立版+前端

新增后台清理缓存功能 修复定位权限 修复无法删除手机端管理员 11月新登录接口修复&#xff01; 修复商家付款到零钱&#xff0c; 修复会员登陆不显示头像&#xff0c; 修复无法修改会员开添加绑定...

广州自助企业建站模板/免费制作网站平台

GCD里就有三种queue(分派队列)来处理. 1. Main queue&#xff1a;(主队列) 顾名思义,运行在主线程,由dispatch_get_main_queue获得.和ui相关的就要使用Main Queue. dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // 耗时的操作 dispatch_…...

工地用木模板尺寸/seo科技网

说明&#xff1a; 本文的作者Eric Raymond是Open Source Software领域的领袖&#xff0c;这方面许多 新的思想正是从他那儿产生的&#xff0c;同时他也是UNIX上最流行的Email软件Fetchmail 的作者。 下面这篇文章有点儿长&#xff0c;然而它是值得你去耐心把它读完的。文章以Fe…...

专业做幼儿园网站/小红书推广怎么收费

2016-10-15更新 添加了3.3–为微信电脑版增加桌面启动器(快捷方式) CSDNGitHubLinux和Mac下的微信电脑版electronic-wechat(非官方)AderXCoding/system/tools/electronic_wechat 本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可 1 electronic-…...

网站开发常去的论坛/汕头百度seo公司

任务1——搭一个框架 用const定义全局的常变量password&#xff0c;作为银行卡的密码。 判断输入的密码是否正确&#xff0c;如果不正确&#xff0c;提示&#xff0c;否则&#xff0c;继续下面的工作。 用switch多分支完成显示。 /**Copyright (c) 2014,烟台大学计算机学院*All…...

招商加盟项目推荐/网站seo技术能不能赚钱

经常有人问我&#xff0c;没有编程经验的人该如何开始开发游戏。在此之前&#xff0c;我总是一个个的尽力回答。然而&#xff0c;后来提相同问题的人数增长到难以处理的地步。我决定&#xff0c;是时候把我所有的建议写成文章&#xff0c;作为一个大概。这 篇文章是针对那些想要…...

wordpress 粘贴代码/seo海外推广

图片右边加两行文字 先来一个效果图&#xff1a; 下面来看代码 wxml <view class"view_tupian_wenzi"><image class"image_1" src"../images/main_yewu.png" /><view class"view_wenzi2"><text>服务项目&l…...