- 博客(31)
- 收藏
- 关注
原创 【c++】虚基类
虚基类在说明其作用前先看一段代码class A{public:int iValue;};class B:public A{public:void bPrintf(){cout<<“This is class B”<<endl;};};class C:public A{public:void cPrintf(){cout<<“This...
2019-12-25 15:34:09
220
原创 【c++】多态/虚函数/纯虚函数/抽象类/成员函数指针/重载/隐藏/覆盖的区别/实现背包
多态:对同一消息有不同响应; 分为静态多态和动态多态: 静态多态:编译期多态,看指针类型; 基类A 派生类B A,B里有同名的函数fun B b(); A* = &b; A->fun(); 调用的是A的fun,不会调用b的fun 动态多态:运行时多态,看内存; A里的 fun 前面加了 virtual, 前面...
2019-12-25 15:23:23
216
原创 【c++】实现string类
注意:#include string类#include<string.h> 字符串和内存的一系列函数#pragma once/*1.数据成员(动态申请char类型的内存)2.四大默认成员函数*/class String{public: String(const char *str = nullptr);//构造字符串时:传入"" String(const S...
2019-12-25 14:58:34
120
原创 【c++】继承
C++面向对象的三大特性:封装/继承/多态继承(是):产生了一个新类,新类不仅具有父类的特性,还具有属于自己的特性;1.继承的定义: class 子类名 : 派生权限1 父类名1,派生权限2 父类名2… { 访问权限: 成员; }; 2.父类成员被子类继承后在子类中的访问权限:父类成员访问权限: public protected pri...
2019-12-24 20:27:52
153
原创 【c++】内联函数/友元函数/友元类/运算符重载
短小(频繁,且没有循环体)的功能:1.内联函数: 特点:1.在函数名前加inline关键字; 2.以空间换取时间,编译阶段整个函数体替换调用部分;2.宏定义: 1.对变量宏定义: #define 宏名 值 2.带参函数的宏定义 #define 函数名(形参表:不需要类型) 函数体 1.整体思维 2.不进行类型检测 ...
2019-12-24 20:20:42
268
原创 【c++】类的特殊的成员(静态成员和常量成员)
特殊的成员:1.const成员: 1.const数据成员: 特点:1.必须使用成员初始化列表初始化 2.不能修改const成员的值 2.const成员函数: 特点:1.返回值类型 函数名(形参表)const;//声明和定义 2.函数内的this指针变为常量指针; (当前对象(所有的数据成员)不能改变,其他都...
2019-12-23 20:29:19
289
原创 【c++】类
1.C语言:面向过程,以函数为核心; C++语言:面向对象,以类为核心; 2.类的概念:一类具有相同属性和行为的事物的封装; 类的三大特性:封装/继承/多态; 学生:属性(有):姓名/身高/体重等; 行为(能):吃饭/考试/挂科等; 英雄:属性(有):血量/等级/攻击力/钥匙数量等 行为:移动/打怪/升级等 地图:属性(有)...
2019-12-23 18:09:35
180
原创 【c++】结构体/联合/枚举
1.数据类型: 1.整型/浮点型/字符型/布尔型 2.数组 3.指针:普通指针/数组指针/函数指针 4.引用 (地图/英雄/玩家/怪物/NPC/药品:)2.自定义类型:结构体(struct)/联合(union)/枚举(enum)3.结构体类型的定义: struct 结构体类型名 //结构体类型名:首字母大写 { 属性1;//属性:类型 变量名;(符合"有"字) ...
2019-12-23 15:55:31
181
原创 【c++】函数/内联函数/函数的重载/缺省/指针函数/函数指针
1.函数:封装一个功能模块;例如:求字符串长度/比较两个数的大小2.定义: 返回值类型 函数名(形参表)//形参表:类型1 变量名1,类型2 变量2…类型n 变量名n { 函数体; }//不能省略 形参表:原材料 返回值:成品根据返回值: 1.无返回值(返回值类型:void) 1.可以不写 2.return;//(表示函数结束) 2.带返回值(返回值类型:整型/浮点...
2019-12-22 19:55:18
192
原创 【c++】字符串相关函数的实现
strcpy:#include<assert.h>char* strcpy(char* to,const char* from){ //1.检测to和from是否为空 //断言:当表达式的结果为0时,程序停止,为1时,继续执行下面的语句 assert(to != nullptr && from != nullptr); //2.保存to原先的值 char...
2019-12-21 17:27:47
122
原创 【C++】指针和引用
1.引用:给一个变量取别名,与这个变量共享一段内存; 1.在定义时:类型& 别名 = 变量名; (2.单目运算符:&取地址 3.双目运算符:按位与) 特点:1.必须初始化 2.不能改变指向 3.既可以作为左值,也可以作为右值;2.指针和引用的区别: 1.指针可以不初始化,引用必须初始化; 2.指针可以改变指向,...
2019-12-21 11:48:16
85
原创 【c++】常量指针/指针常量/typedef
1.常量指针:表示指针指向一个被const修饰的变量; 两种写法: 1.const 类型 * 指针名;//例如const int* p; 2.类型 const * 指针名;//例如int const* p; 赋值: 1.const变量的地址 2.非const变量的地址 特点: 1.指向的内容(const)不能修改; 2.指向可以修改...
2019-12-20 20:16:48
137
原创 【c++】指针与内存区域划分/空指针
内存区域的划分:(1.存储的元素 2.生命周期(内存什么时候存在 什么时候回收) 3.作用域)----------------------------------1.常量区:存储字面值常量(例如1,100,3.14,‘a’,‘1’)和字符串(例如:“abcd”) 从程序开始时系统分配内存,程序结束时系统回收内存;----------------------------------2.静...
2019-12-20 19:44:41
712
原创 【c++】数组指针
1.数组指针类型:1.依然是指针类型 2.指向数组2.数组指针的定义: 指向的数组的元素类型 (*数组指针名)[数组大小];3.数组指针的内存:4个字节4.数组指针的初始化和赋值: 1.一维数组名及以上的地址赋值; 2.二维数组名及以上; int n[3][4]; //n[0](int*):大小为4 n[0] = &n[0][0] //n(数组指针):n =...
2019-12-20 17:24:15
355
原创 unity加载ab包
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Networking;using System.IO;public class Test : MonoBehaviour { // Use this for initialization IEn...
2019-12-20 14:13:42
1898
原创 Unity 创建ab包(AssetBundle)
* AssetBundle:简称AB包* 用处:1.ab是一个压缩包:包含模型,贴图,预制体,声音,甚至整个场景,可以在游戏运行的时候加载* 2.它自身保存着互相依赖的关系* 3.压缩包:LZMA和LZ4压缩算法,减少包的体积大小,更快的进行网络传输* 4.把一些可以下载的内容放在AB包里面,可以减少安装包的大小*** ab包:* 1.存在于硬盘上的文件,这个压缩包我们可以认为是一...
2019-12-19 15:08:14
1130
原创 【C++】指针/字符型指针/指针的运算/大小端
1.指针的概念:为了方便访问内存中的内容,给每一个内存单元编号,我们把这个编号称为地址,也就是指针. (1.指针 = 地址 2.指针也是一种数据类型)2.指针变量的定义: 数据类型 变量名; (指向的类型 *) 变量名;3.指针变量的内存: 任意类型的指针占4个字节,以8位十六进制打印:例如000000ff4.指针的初始化以及赋值: 1.用指向类型数据的地址赋值;&a...
2019-12-18 20:31:59
560
原创 【c++】二维数组
二维数组:一类具有相同数据类型元素的行列集合;二维数组的定义:元素类型 数组名[行数][列数];(行数/列数:常量表达式)二维数组的内存:1.内存大小:元素所占字节数 * 行数 * 列数2.内存分布:连续的,按行存储;二维数组的初始化:1.{{},{},{}},可以给部分元素赋值2.{1,2,3,4,5,6,7}; 1.按行存储 2.可以省略行数不写,不能省略列数, ...
2019-12-17 20:26:58
200
原创 【C++】冒泡排序/插入排序/选择排序/快速排序
int n[5]; for (int i = 0; i < 5;i++) { cin >> n[i]; } //冒泡排序 for (int i = 1; i <= 4;i++)//轮数 { for (int j = 0;j <= 3 - i;j++)//次数//n[3] n[4] { //相邻两元素进行比较 if (n[j] >...
2019-12-17 19:54:50
133
原创 【c++】基本数据类型/常量与变量/进制转换/数据溢出
转义字符:\字符(特定的含义\n 换行\r 回车\t 水平制表符\反斜杠code格式:%字符(输出的格式) %s 字符串 %d 整型 %o 八进制 %x %X 十六进制常量:程序中不能改变的量,比如1 3.14 ‘a’ “abcd”变量:程序中可以改变的量,定义: 数据类型 变量名;变量名:合法的标识符;(首字母小写)合法的标识符:1.以字母(a-z大小写...
2019-12-17 18:59:32
246
原创 【lua】面向对象/类/继承
–面向对象的特征:–封装:指能够把一个实体的信息,功能,响应都装进一个单独的对象中的特性–继承继承的方法允许在不改动原程序的基础上对其进行一个扩充,这样使得原功能得以保存,而新功能也得到扩展,这样有利于减少重复编码–多态:同一操作作用于不同的的对象,可以有不同的解释,产生不同的执行结果,在运行的时候,可以通过指向基类的指针,来调用实现派生类中的方法–抽象:抽象是简化复杂的现实问题的途径,可...
2019-12-17 11:05:57
143
原创 【lua】元表
–lua元表–当lua试图去对两个表相加时,先检查两个表之一是否有元表,之后再检查是否有一个叫“__add”的字段,若找到,则调用对应得值,如果找不到就返回nil,其中__add为即时字段,其对应的值(一般是函数或者是一个表)就是“元方法”–处理元表的两个函数:–setmetatable(table,metatable):对指定的table设置元表(metatable),如果元表(metat...
2019-12-16 20:22:23
106
原创 【lua】模块与包/self
–lua模块与包–模块:Lua 的模块是由变量、函数等已知元素组成的 table,因此创建一个模块很简单,就是创建一个 table,然后把需要导出的常量、函数放入其中,最后返回这个 table 就行–文件加载的三种方式:–1.require(“模块名”)或者 require"模块名"– 在第一次加载文件的时候会执行里面的代码,再次加载的时候就不会执行了– 简单来说就是会保存已经加载过...
2019-12-16 19:43:23
224
原创 【lua】迭代器/闭包
–lua迭代器–泛型for迭代器–泛型for在自己内部保存迭代函数,实际上保存三个值:迭代函数,状态常量,控制变量–for k,v in pairs(tab) do– print(k,v)–end–for i=1,10,1 do– print(i)–end–1.初始化,计算in后面表达式的值,表达式应该返回泛型for需要的三个–值,迭代函数,状态常量,控制变量–2...
2019-12-16 19:34:26
117
原创 【lua】赋值语句/循环/if/运算符/数组
–赋值语句–lua中是可以同时给多个变量赋值,变量列表和值列表的各个元素用逗号分开,–赋值符号右边的值会依次赋值给左边的变量a,b=b,a–交换两个变量的值–给表赋值tab={}tab[“key”]=“value”print(tab[“key”])print(tab.key) – key是字符串类型的时候才可以直接tab.str –lua循环–while循环 :当con...
2019-12-16 19:26:47
764
原创 【lua】table表
–table :lua里面唯一的数据结构 list+哈希 {}–table默认的索引是从1开始的–lua的table是不会固定大小,有新数据添加的时候会自动扩容,没有初始化的table都是nil–任意类型的值来做为数组的索引,但是这个值不能是nil–当我们给table a设置元素的时候并且将a赋值给b,则a和b都指向同一个内存,但是如果把a设置为nil,b同样能访问到table中的元素,如...
2019-12-16 19:16:22
96
原创 【lua】string字符串
string :字符串– 是由一对双引号或者单引号定义的– 也可以用 2 个方括号 “[[]]” 来表示"一块"字符串。print(“2” + 8) – 10 lua会把数字字符转为数字print(“2” + “6”)-- 8–print(“error”+1)–报错 error1 rror 1 字符串拼接用…print(“error”…1) – error1–字符串长...
2019-12-16 19:11:12
262
原创 【lua】lua八大数据类型/lua变量
–八大数据类型– nil boolean number string table function thread userdata –nil:空类型:没有一种任何的有效值 null– 对于全局变量和 table,nil 还有一个"删除"作用,给全局变量或者 table 表里的变量赋一个 nil 值,等同于把它们删掉 –bool:true false / n...
2019-12-16 18:55:45
405
原创 【C++】题目
unsigned char a = 0xA5;//八进制和十六进制化为二进制(补码形式)//二进制原码:10100101//二进制反码:01011010(无符号)//二进制补码:01011011//整型提升:00000000 00000000 00000000 01011011// ~a: 11111111 11111111 11111111 10100100//~a>...
2019-12-16 00:19:48
315
1
原创 【C++】数组
1.数组:一类具有相同类型元素的集合。2.数组的定义: 元素类型 数组名[数组大小]; 数组的大小:必须是常量; 1.字面值常量 (10 5) 2.被const修饰的变量:const 数据类型 变量名; 特点:1.必须初始化 2.只读,不可以修改 3.宏定义(写在函数外):#define 宏名 值 (所有使用到宏名的地方都用值替换(宏替换))3.数组的内存: ...
2019-12-15 03:03:59
151
1
原创 【C++】基础
C++基础1.自增自减运算符:++ – 前置: ++a 先自增再运算 后置: a++ 先运算再自增 后置优先级高于前置int i = 0;++i++;//结合性是从右到左 编译会出错前置效率高于后置(后置需要保存原来的值 运算后 再把保存的值赋给a)2.关系运算符 > < >= <= == !=3.逻辑运算符 &&逻辑或, ...
2019-12-14 22:05:53
268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人