- 博客(45)
- 收藏
- 关注
原创 同步&异步日志系统
假设现在有A、B 两种产品,则开两个⼯⼚,⼯⼚ A 负责⽣产产品 A,⼯⼚ B 负责⽣产产品 B,⽤⼾只知道产品的⼯⼚名,⽽不知道具体的产品信息,⼯⼚不需要再接收客⼾的产品类别,⽽只负责⽣产产品。⼯⼚⽅法模式每次增加⼀个产品时,都需要增加⼀个具体产品类和⼯⼚类,这会使得系统中类的个数成倍增加,在⼀定程度上增加了系统的耦合度。⼯⼚⽅法模式通过引⼊⼯⼚等级结构,解决了简单⼯⼚模式中⼯⼚类职责太重的问题,但由于⼯⼚⽅法模式中的每个⼯⼚只⽣产⼀类产品,可能会导致系统中存在⼤量的⼯⼚类,势必会增加系统的开销。
2023-09-18 09:52:37 162 1
原创 C++实现云备份项目
通过不断遍历备份文件夹中的文件, 判断其是否需要上传, 判断条件: 1. 该文件没有存储文件信息, 则说明该文件是刚放入备份文件夹的, 还没有备份上传, 需要备份. 2. 若存在备份文件信息, 则比较当前的etag与之前保存的etag比较, 若不相同则需要上传( 若最后一次访问时间与当前时间比较, 大于指定时间则认为用户已对文件修改完成, 可以上传, 否则认为用户还在修改, 先不上传, 等下次循环再判断时间是否大于, 大于则认为修改完成, 可以上传.)并且能够随时通过浏览器。
2023-09-17 21:14:26 278 1
原创 拷贝构造函数
4. 编译器生成的默认拷贝构造函数已经可以完成字节序的值拷贝了,还需要自己显式实现吗?当然像日期类这样的类是没必要的。默认的拷贝构造函数对象按内存存储按字节序完成拷贝,这种拷贝叫做浅拷贝,或者值拷贝。一旦涉及到资源申请 时,则拷贝构造函数是一定要写的,否则就是浅拷贝。2. 拷贝构造函数的参数只有一个且必须是类类型对象的引用,使用传值方式编译器直接报错, 因为会引发无穷递归调用。在编译器生成的默认拷贝构造函数中,内置类型是按照字节方式直接拷贝的,而自定义类型是调用其拷贝构造函数完成拷贝的。
2023-08-19 16:32:17 181
原创 构造函数和析构函数
内置类型就是语言提供的数据类型,如:int/char...,自定义类型就是我们使用class/struct/union等自己定义的类型,看看下面的程序,就会发现编译器生成默认的构造函数会对自定类型成员_t调用的它的默认成员函数。
2023-08-19 15:08:48 148
原创 类的访问限定符,实例化,对象存储方式,this指针
/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分 号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者 成员函数。1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内 联函数处理。2. 类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加。
2023-08-19 09:02:54 166
原创 内联函数详细讲解
因为在编译的时候inline函数需要被展开,但是内联函数此时只能找到声明,在链接的时候才能找到内联函数的定义,此时编译器就会报错。,没有函数调 用建立栈帧的开销,内联函数提升程序运行的效率。,缺陷:可能会使目标文件变大,优势:少了调用开销,提高程序运。(即函数不是很长,具体没有准确的说法,取决于编译器内部实现)、以inline修饰的函数叫做内联函数,编译时C++编译器会在。所以C++有了内联函数,有宏的函数,没有宏的缺点。的做法,如果编译器将函数当成内联函数处理,在。,否则编译器会忽略inline特性。
2023-08-16 11:36:18 64
原创 引用的详细讲解
引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空 间,它和它引用的变量共用同一块内存空间。1. 引用在定义时必须初始化2. 一个变量可以有多个引用3. 引用一旦引用一个实体,再不能引用其他实体4.引用类型必须和引用实体是同种类型的1. 做参数2. 做返回值但是下面代码会出现错误,为什么呢?我们先来看一下函数采用传值返回的过程当n在静态区时,采用传值返回 当n采用传引用返回 我们再回到最上面的问题,为什么c传引用返回会出错呢?通过上面三个例子的演示,我们知道,c是在Add
2023-08-16 09:35:07 56
原创 动态内存开辟
有时会我们发现过去申请的空间太小了,有时候我们又会觉得申请的空间过大了,那为了合理的时 候内存,我们一定会对内存的大小做灵活的调整。返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己 来决定。函数的功能是为 num 个大小为 size 的元素开辟一块空间,并且把空间的每个字节初始化为0。如果参数 ptr 指向的空间不是动态开辟的,那free函数的行为是未定义的。这个函数调整原内存空间大小的基础上,还会将原来内存中的数据移动到新的空间。
2023-08-07 10:22:16 42
原创 结构体内存对齐,默认对齐数,结构体传参
我们先来计算一下结构体内存的大小现在我们计算一下stu1和stu2每个成员内存偏移是多少。在介绍偏移量之前,我们先简单介绍一下offsetof(是一个宏),它是用来计算结构体成员相较于起始位置的偏移量。现在我们来详细介绍一下内存偏移是怎么回事。
2022-10-13 18:26:06 471
原创 将一句话的单词进行倒置,标点不倒置,比如i like beijing.经过函数后变为beijing. like i
还可以先逆序单词,再逆序字符串
2022-08-09 23:29:22 872 1
原创 冒泡排序。
#include<stdio.h>void bubble_sort(int arr[],int sz){ //先确定趟数 int i = 0; for (i = 0; i < sz - 1; i++) { int flog = 0;//假设没有进行交换 //确定兑换对数 int j = 0; for (j = 0; j < sz-1 - i; j++) { if (arr[j]>arr[j+1]) { int tmp =ar.
2022-05-25 19:06:12 55
原创 冒泡排序.
#include<stdio.h>void bubble_sort(int arr[],int sz){ //先确定趟数 int i = 0; for (i = 0; i < sz - 1; i++) { int flog = 0;//假设没有进行交换 //确定兑换对数 int j = 0; for (j = 0; j < sz-1 - i; j++) { if (arr[j]>arr[j+1]) { int tmp =ar.
2022-05-25 19:05:14 43
原创 计算第n个斐波那契数
int Flb(int n){ int a=1; int b=1; int c=1; while(n>2) { c=a+b; a=b; b=c; n--; } return c;}int main(){ int n=0; scanf("%d",&n); int ret=0; ret=Flb(n); printf("%d\n",ret); return...
2022-05-03 17:34:58 121
原创 实现一个整形有序数组的二分查找
int binary_search(int arr[],int k,int sz) { int left=0; // int sz=sizeof(arr)/sizeof(arr[0]);传参数是首元素地址,四个字节,arr[0]是首元素所以sz=1 int right=sz-1; while(left<=right) { int mid=(left+right)/2; if(arr[mid]<k) { left=mid+1; }.
2022-04-22 16:46:36 187
原创 输出1-100含有9的数
int main(){ int i=0; int count=0; for(i=1;i<=100;i++) { if(i%10==9||i/10==9) { printf("%d\n",i); count++; } } printf("含有9的个数:%d\n",count); return 0;}int main(){...
2022-04-21 22:43:02 932
原创 输出1/1-1/2+1/3-1/4+1/5-......+1/99-1/100的和
int main(){ double a=1; double b=0; double sum=0; int flagt=1; for(b=1;b<=100;b++) { sum=sum +flagt*a/b;//如果都是int型,1/2=0 flagt=-flagt; } printf("%lf\n",sum); return 0;...
2022-04-21 22:42:17 84
原创 输出乘法表
int main(){ int i=0; //确定行数 for(i=1;i<=9;i++) { int j=1; //打印列数 for(j=1;j<=i;j++) { printf("%d*%d=%-2d ",i,j,i*j); } printf("\n"); } return 0;}...
2022-04-21 22:41:03 96
原创 求100到200之间的素数
#include<stdio.h>int main()//试除法{ int count=0; int i=0; for(i=100;i<=200;i++) { int j=0; for(j=2;j<i;j++) { if(i%j==0) { break; } } ...
2022-04-05 22:35:52 70
原创 求最小公约数
#include<stdio.h>int main(){ int a=0; int b=0; int r=0; scanf("%d%d",&a,&b); while(a%b)//a%b==0的时候,为假,跳出循环 { r=a%b; a=b; b=r; } printf("%d\n",b); return 0;}...
2022-04-03 22:38:00 57
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人