自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 模板类详解

现在有一个问题,要如何实现一个通用的交换函数呢?之前学过的函数重载虽然说可以实现,但它有几个不好的地方:1.重载的函数仅仅只是类型不同,代码的复用率比较低,只要有新类型出现时,就要增加相应的函数2.代码的可维护性比较低,一个出错可能所以的重载均会出错我们需要用一个通用的模具来实现不同类型的代码,就像生活中浇筑的过程一样,会有一个模具,通过给这个模具中填充不同的材料来获得不同材料的铸件。一.泛型编程即编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。模板分为函数模板和类模板。

2021-11-27 19:18:46 4706

原创 C++内存管理

一.C++内存分布要研究C++的内存分布,首先要明白C++的内存是如何分布?1.栈(Stack):又叫堆栈,存储非静态局部变量/函数参数/返回值等等,栈是向下增长的。2.内存映射段:用于装载一个共享的动态内存库,用户可使用系统接口创建共享内存,做进程间通信。3.堆(Heap):用于程序运行时的动态内存分配(如:malloc,realloc,calloc,new等),堆是可以向上增长的。4.静态区(Static):包括数据段和代码段,其中数据段用来存储全局数据和静态数据,代码段用来存储可执行代码,

2021-11-13 19:40:41 413

原创 static成员,友元及内部类

一.static成员1.概念:声明为static的类成员成为类的静态成员。用static修饰的成员变量称为静态成员变量,用static修饰的成员函数称为静态成员函数。class Test {public: //Test():m_a(0){} Test():m_b(0){ } //静态函数没有this指针 static void fun() {//静态函数只能调用静态成员,不能调用普通成员 m_a = 0; //show();不能调用 } void show() {//普通函数

2021-10-31 21:34:56 111

原创 类的6个默认成员函数及const成员函数

一.类的6个默认函数空类即一个类中无任何成员。空类中并不是什么没有,它会在我们不写的情况下自动生成6个默认函数,如下:1.构造函数(1)概念:构造函数是一个特殊的成员函数,它的名字必须和类名相同,并且无返回值,在创建对象时由编译器自动调用构造函数用来初始化对象class Date {public: void SetDate(int year, int month, int day) { _year = year; _month = month; _day = day; } vo

2021-10-25 18:05:06 317

原创 C++类及this指针

一.类的定义C语言中,结构体只能定义变量,但在C++中,结构体内不仅可以定义变量,也可以定义函数,只不过在C++中更喜欢用class来代替C语言中的struct,如下:class Test{ //类体:由成员函数和成员变量组成};其中class为定义类的关键字,Test为类的名字,{}中为类的主体,注意类定义结束时后面的分号类定义的两种方式:1.声明和定义都在类体中需要注意,成员函数如果在类中定义,编译器可能会将其当成内联函数处理。class Person {public:

2021-10-22 15:44:31 271

原创 C++基础知识(二)

一.auto关键字1.简介auto作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时推导而得。看下面的代码,对auto进一步认识:int TestAuto() { return 10;}int main() { int a = 10; auto b = a; auto c = 'a'; auto d = TestAuto(); cout << typeid(b).name() << endl; cout << type

2021-10-05 00:00:40 64

原创 C++基础知识(一)

之前学习的C语言是面向过程,C++则是面向对象(类)的,两者在代码书写上就具有一定的区别。#include <iostream>//输入输出流using namespace std;//命名空间int main(){ int a = 10; cout<<"a ="<<endl; return 0;}这里的cout即输出对象流,相当于C语言中的printf;cin为输入对象流,相当于C语言中的scanf;<<是插入符,又称输出运算符;en

2021-10-03 18:05:11 202

原创 顺序表与链表

顺序表与链表一.顺序表1.定义:将表中元素一个接一个的存入一组连续的存储单元中,这种存储结构是顺序结构。采用顺序存储结构的线性表简称为“ 顺序表”。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中顺序表可以分为静态顺序表和动态顺序表2.结构定义:#define MAXSIZE 100 typedef int ElemType;typedef struct Seqlist {//静态顺序表 ElemType data[MAXSIZE]; size_t size

2021-09-06 17:00:16 1435

原创 字符串函数

字符串函数1. strlensize_t strlen (const char* str);(1) 它是用来求字符串的长度(2)使用strlen必须是字符串,并且他必须进行参数校验(3)用代码来实现它,如下:size_t strlen(const char* str) { //两种校验方式 //此处校验只能校验空指针,不能校验野指针 /*if (str == NULL) { return 0; }*/ //assert是"断言",是一个宏. assert(str != NULL);

2021-08-08 20:08:43 157

原创 数据在内存中的存储

一.整数在内存中的存储1.C语言中存整数的数据类型有:char, short , int , long , long long , int* , int [2]2.整数在内存中的存储涉及两方面(字节序和原码 反码 补码)(1)字节序a.大端序int num=0X11223344若内存中如果按照 11 22 33 44 这样的方式来存储数据的,就是大端字节序b.小端序按照 44 33 22 11 这样的方式来存储数据的,就是小端字节序,即低(小)位放在低(小)地址(简记:小小小)网络传输也

2021-05-27 20:34:10 128

原创 C语言实现简单扫雷游戏

扫雷游戏是一个十分经典的游戏,大家都很熟悉,今天我就来给大家说一下如何用C语言来实现扫雷一 题目描述在一个9*9的地图上随机产生10个地雷,玩家需要点开除了地雷以外的所以位置,方可获得胜利,并且玩家在点开一个位置时,若该位置不是地雷,则需显示以该位置为中心,周围8个位置的地雷个数,若点开是地雷,则游戏直接结束二 设计思路我们只需让玩家输入坐标就可以扫雷,是不是不同于我们平时玩的扫雷,这样的扫雷是会很有趣的,接下来我们需要用几个模块来模拟游戏规则,然后通过调用函数来使整个代码成功运行。1.创建地图

2021-05-06 17:27:31 160

原创 用C语言实现三子棋游戏

一. 题目描述:在3*3的矩阵上下棋,一个人画 x ,电脑随机落子,谁先出现成行成列或成对角线三个相同的棋子就算谁赢。二. 游戏流程:1.创建棋盘,并且对棋盘初始化,把所有的棋盘位置都设为空格2.将棋盘打印出来3.玩家进行落子(让玩家输入一组坐标(row,col))4.判定获胜int isFull(char chessBoard[MAX_ROW][MAX_COL]) { for (int row = 0; row < MAX_ROW; row++) { for (int co

2021-05-05 23:01:25 55

原创 C语言基础

数据类型变量及变量名数组常用的快捷键使用方式1.数据类型:char(字符型) 1字节short(短整型) 2字节int(整型) 4字节long int(长整型) 4字节long long 8字节double(双精度浮点数)

2021-04-14 23:06:14 235

空空如也

空空如也

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

TA关注的人

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