自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 2021-04-15

.C++程序设计–继承与多态虚继承C++中虚拟继承的概念为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题。class 派生类名:virtual 继承方式 基类名virtual是关键字,声明该基类为派生类的虚基类。在多继承情况下,虚基类关键字的作用范围和继承方式关键字相同,只对紧跟其后的基

2021-04-15 16:15:39 62

原创 2021-04-15

C++程序设计–继承与多态纯虚函数和抽象类3.1 抽象类的定义在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。父类包含了子类集合的常见的方法,但是由于父类本身是抽

2021-04-15 15:16:51 69

原创 2021-04-13

C++程序设计–运算符重载内存池的设计及其思想内存池是什么?内存池是一组资源的集合。程序在申请堆上的内存时,我们可以给它一大块内存(远超出程序要申请的大小,即内存池),并且自己管理,而不是它要多少就从切换到内核态,给它多少。为什么要设计内存池?两个原因:1.因为频繁的new/delete 用户态转内核态,效率低:因为物理内存是一个物理硬件,程序要从物理硬件上申请资源,要调用系统调用,要切换到内核态,还调用驱动······一系列操作;2.频繁的new/delete可能造成内存碎片。如何设计?内存池

2021-04-13 22:45:43 55

原创 2021-04-13

C++程序设计–运算符重载1. 浅拷贝,深拷贝,写时拷贝对于普通的类型来说,拷贝没什么大不了的。int a = 0;int b = a;不会出现任何问题。而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。浅拷贝#include  class student{public: student() // 构造函数,p指向堆中分配的一空间 { _name = new char(100); printf("默认构造函数\n");

2021-04-13 22:19:28 44

原创 2021-04-13

C++程序设计–类和对象static 的用法1). static 修饰变量2). static 修饰函数static的作用主要有两种:第一个作用是限定作用域;第二个作用是保持变量内容持久化;c语言中static的用法:1、全局静态变量:用法:在全局变量前加上关键字static,全局变量就定义成一个全局静态变量。 static int temp;内存中的位置:静态存储区,在整个程序运行期间一直存在。初始化:未经初始化的全局静态变量会被自动初始化为0(自动对象的值是任意的,除非他被显式初始化

2021-04-13 21:20:59 52

原创 2021-04-13

.C++程序设计–类和对象封装的思想1 什么是封装?封装是将事物的一些不便暴露给外界的一些属性隐藏起来.同时给外界提供一些接口,用来和外界进行交互,建立连接关系2 C++如何实现封装?结论: 在C++中通过类和访问权限来实现封装一方面,类作为一块独立的作用域,与外界分割开来,类中有两个要素,一个要素是事物的属性,这些属性可以通过访问限定符关键字(private)来修饰,经过private修饰的属性对外界不可见,但是在类中,这些属性作为全局数据共享.另一个要素是一些关于该事物的操作方法,这些操作方

2021-04-13 15:36:19 32

原创 2021-04-13

.C++程序设计–类和对象面向对象的思想面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节;这种思想是将数据作为第一位,而方法或者说是算法作为其次,这是对数据一种优化,操作起来更加的方便,简化了过程。面向对象有三大特征:封装性、继承性、多态性,其中封装性指的是隐藏了对象的属性和实现细节,仅对外提供公共的访问方式,这样就隔离了具体的变化,便于使用,提高了复用性和安全性。对于继承性,就是两种事物间存在着一定的所属关系,那么继承的类就

2021-04-13 14:47:27 31

原创 2021-03-27

魔方(幻方)阵解题思路:魔方阵,又称幻方阵,是指组成元素为自然数 1、2,3…n^2 的 n×n 的方阵,其中每个元素值都不相等,且每行、每列以及主、副对角线上各 n 个元素之和都相等。对于 n 为奇数的魔方阵,算法描述如下:1、数字 1 方阵方阵第一行的中间;2、当前数字放在前一个数字的上一行,后一列,注意如果已经到顶行则上一行为最后一行即把线性的看着环形的,列同样处理。3、如果当前位置已经有数据,则放在前一个数字的下一行,同列。考点:1、了解过魔方阵。2、根据魔方阵的算法描述可以

2021-03-27 16:29:00 54

原创 2021-03-27

static 关键字的用法及作用在 C 语言中,static 主要定义全局静态变量,定义局部静态变量,定义静态函数考点:1,静态关键字2,静态局部变量一、 定义全局静态变量 :在全局变量前面加上关键字 static,该全局变量变成了全局静态变量。全局静态变量有以下特点:(1) 在全局数据区内分配内存(2) 如果没有初始化,其默认值为 0 (3) 该变量在本文件内从定义开始到文件结束可见二、 定义局部静态变量:在局部静态变量前面加上关键字 static,该局部变量便成了静态局部变量。静态

2021-03-27 15:33:00 53

原创 2021-03-26

二分(折半)查找解题思路:二分查找也称为折半查找,是最著名的查找算法,优点是算法简单易实现,查找速度快,平均性能好,时间复杂度仅为 O(logn),缺点是数据必须顺序存储且有序。考点:1、折半查找的实现。2、时间复杂度。3、适用场景(数据必须顺序存储且有序)。代码://arr 数组名,len 数组长度,key 需要查询的关键字//成功返回下标,失败返回-1int BinSearch(const int *arr,int len,int key) //O(logn){int low

2021-03-27 15:17:53 68

原创 大端和小端

小端:低地址存放低字节数据。大端:低地址存放高字节数据。考点:如何通过代码判断当前系统是大端还是小端?代码/具体阐述:实现的算法:定义一个大于一个字节的变量查找该变量的低地址存放的是低字节数据还是高字节数据。可以用两种方式去验证当前系统是大端还是小端模式。...

2021-03-14 23:59:49 44

原创 malloc,calloc 和 realloc 的作用及区别

解题思路:C 语言中开辟动态内存的有三个函数,分别为 malloc,calloc,realloc,释放内存的只有一个函数 free。malloc 使用的最频繁,因为它最简单,只需要一个参数,即需要动态开辟的内存的字节数,如果堆里的连续空间能满足需要则将分配好的内存首地址返回,否则返回 NULL。calloc 只是在 malloc 的基础上将分配好的每个字节赋值为 0,这个功能使用并不多见,但由于 callloc 需要提供两个参数,相比较而言并没有 malloc 使用的多。realloc 主

2021-03-12 13:34:04 407

原创 extern 关键字

考点:1,extern 是做什么的?有什么用?2,在 A.cpp 文件中引用 B.cpp 中的全局变量3,为了能够正确实现 C++代码调用其他 C 语言代码,会指示编译器extern "C"修饰的变量和函数是按照 C 语言方式进行编译和链接的1.目的:为了能够正确实现C++代码调用其他C语言代码,会指示编译器extern "C"修饰的变量和函数是按照C语言方式进行编译和链接的在C中引用C++语言中的函数和变量时,C++的头文件需添加extern “C”,但是在C语言中不能直接引用声明了exte

2021-03-12 13:07:22 115

原创 C语言复习-c 的文件操作用过吗?fwrite 的参数是什么?

c 的文件操作用过吗?fwrite 的参数是什么?解题思路:文件操作中 write 操作考点:1,输入缓冲区:写操作 fwrite()后必须关闭流 fclose()。2,文件操作:不关闭流的情况下,每次读或写数据后,文件指针都会指向下一个待写或者读数据位置的指针。代码/具体阐述:size_t fwrite ( const void * ptr, size_t size, size_t count, FILE *stream );其中,ptr:指向保存数据的指针;size:每个数据类型的

2021-03-11 21:48:37 172

原创 C语言复习-100 万的整形数据占多大

C语言复习-100 万的整形数据占多大解题思路:标准规定sizeof(char)<sizeof(short)<=sizeof(int)<=sizeof(long)<=sizeof(long long)其中 char 类型 1 字节,long long 类型 8 字节,那么 int 在 16 位平台为 2 字节,在 32 位或者 64 位平台为 4 字节,而目前以 32 或者 64位居多。有几组数字是需要记住的 2^10 = 1K (1000),2^20=1M(100

2021-03-11 18:32:44 604

原创 判断数n是否能够同时被3和5整除(true and false)

#include<stdio.h>int main(){int n;scanf("%d",&n);if(n%3= =0 && n%5==0) // =中间的空格删掉{printf(“true\n”);}else{printf(“false\n”);}return 0;}...

2020-03-15 20:40:24 1911

原创 1+2+3+.......+100

#include<stdio.h>int Sum(int n){ int sum=0; for(int i=0;i<=n;i++) {  sum=sum+i; } return sum;}int main(){ printf("%d\n",Sum(100));}

2020-03-15 20:29:19 135

原创 有三个数abc要求按大小顺序输出

有三个数abc要求按大小顺序输出#include"stdio.h"int Max(int a,int b,int c){int tmp;if(a<b){tmp=a;a=b;b=tmp;}if(a<c){tmp=a;a=c;c=tmp;}if(b<c){tmp=b;b=c;c=tmp;}printf("%d,%d,%d\n",a,b,c...

2020-03-15 18:19:14 4210

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除