自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小白的博客

游戏开发

  • 博客(68)
  • 问答 (6)
  • 收藏
  • 关注

原创 动态语言,静态语言,强类型定义语言,弱类型定义语言

<动态语言和静态语言> 我们通常说的动态语言和静态语言就是动态类型的语言和静态类型的语言。 (1)动态类型语言: 指的是程序运行期间才做数据类型检查的语言。即在执行期间才会发现数据类型的语言。 (2)静态类型语言: 指的是程序在编译阶段进行数据类型检查。编译时,其数据类型是固定的。使用变量之前要声明它们的数据类型。 <强类型定义语言与弱类型定义语言> (1). 强...

2018-08-13 23:43:49 629

原创 C++中的类型转换

C语言中的类型转换,不管什么类型都是:Type a =(Type)b;C++风格的类型转换提供了4种类型转换操作符: a. static_cast(静态类型转换) C语言中隐式类型转换的地方都可以使用C++中的静态类型转换(static_cast(静态类型转换))因C++编译器在编译检查一般都能通过。但是静态类型转换不可用于指针类型转换。double a =3.14;int ...

2018-08-13 23:06:28 492

原创 C++ typedef的用法

typedef的用途: 为已有的数据类型重新命名。 <1. 基本类型>int a=10;//为整型重新命名typedef int ZS;ZS b=10;<2. 结构体的使用>a. 为结构体重新命名://ST---->等价于struct Studenttypedef struct Student{ int id; char...

2018-08-12 23:48:59 10054 1

原创 C++ 面试题(字符串操作)

<1.字符串拷贝> 思路分析: a. 确定被拷贝的数组的内存大小是否小于等于目标数组的内存大小; b. 拷贝数组; c. 目标数组最后一个字符为空字符(‘\0’)。//str1:被拷贝的数组 str2:目标数组 len:目标数组的长度bool stringCopy(char* str1,char* str2,int len){ int i = 0; ...

2018-08-12 23:31:51 3487

原创 数据结构与算法冒泡排序

冒泡排序的基本思想: 两两比较相邻的元素,如果反序则交换,直到没有反序的元素为止。 <一. 冒泡排序的初级版(交换排序)> 交换排序: 当前位置的元素与后面的元素比较。//冒泡排序初级版(交换排序)--->当前位置的元素与后面的元素比较void sortOne(int*arr,int len){ for (int i=0;i<len-1;i++) ...

2018-08-08 15:21:17 3075

原创 C++ 类模板中static关键字

类模板中的static成员变量是所有的模板类共享,还是每个模板类都有自己的static成员变量。template<typename T>class TA{public: static T a;public: TA() { }};template<typename T>T TA<T>::a = 10;in...

2018-08-07 18:15:31 1808

原创 C++ 类模板

文章概述类模板出现的原因;几个重要概念的区分;单个类模板语法:继承中的类模板语法;类模板语法知识体系梳理 类模板出现的原因两个或者多个类的功能是相同的,仅仅是数据类型不同。类模板将数据类型和算法实现了分离。几个重要概念的区分函数模板和模板函数?函数模板是一个产生函数的蓝图(抽象);模板函数是函数模板的实例。类模板和模板类类模板是...

2018-08-07 18:00:12 288

原创 C++ 函数模板(2)

文章概述C++编译器是如何提供函数模板的机制? 解决这个问题之前,我们探究一下C++编译器的原理(如何将高级语言转化为计算机能够识别的低级机器指令)编译器编译原理我们首先区分以下几个概念: a. 编辑器: 用来让程序员优雅的敲代码; 常见的编辑器: Sublime,Vim。 b. 编译器: 将高级语言或者汇编语言编译成计算机能够识别的并运行的机器语言;常见的编译器:GCC...

2018-08-07 13:18:27 455

原创 Cocos2d-Lua 开发环境配置(windows)

(最好用Google Chrome浏览器) <一.安装Cocos2d-Lua(运行环境)>在http://cocos2d-lua.org/download/index.md中下载Cocos2d-Lua版本。我学习的是Quick-Cocos2dx-Community 3.6.4进入解压后的引擎目录,双击setup_win.bat开始执行安装脚本。安装成功后,会产生一个...

2018-08-07 01:09:53 4034

原创 Lua 在Windows下的运行环境搭建

掌握lua语言,搭建在Windows下的开发调试环境,安装Lua For Windows这套工具。<一.下载并且安装:>Lua For Windows 的官方网站:(推荐5.1)http://code.google.com/p/luaforwindows/双击LuaForWindows_v5.1.4-46.exe文件安装,注意在Select Additional Task...

2018-08-06 23:46:24 13288 1

原创 C++ 模板,普通函数,类声明和定义放置位置区别

当我们调用一个函数时,编译器只需要掌握函数的声明即可。类似的,我们使用一个类类型的对象时,类的定义必须是可用的,但成员函数的定义不必已经出现。因此,我们将类定义和函数声明放置在头文件中,普通函数和成员函数的定义放置在源文件中。 模板则不同,为了生成一个实例化版本,编译器需要掌握函数模板或者类模板成员函数的定义。 结论: 函数模板和类模板成员函数通常放在头文件中。...

2018-08-04 11:14:01 2460

原创 C++ 空字符('\0')和空格符(' ')

从字符串的长度:——>空字符的长度为0,空格符的长度为1 char a[] = "\0"; char b[] = " "; cout << strlen(a) << endl; //0 cout << strlen(b) << endl; //1虽然输出于屏幕是一样的,但是他们还是有区别的:

2018-08-02 23:53:40 48540

原创 C++ Sizeof运算符与Strlen函数

sizeof运算符用于返回变量,对象,数据类型的字节长度。int var =10;int len =sizeof(var);int len02=sizeof(int);sizeof运算符也可以用于数组:int arr[3]={1,2,3};int len = sizeof(arr); //3*4(元素的字节长度)需要注意的是对于字符串常量的使用: 字符串常量是以’...

2018-08-02 23:34:24 246

原创 C++ 函数模板(1)

文章概述为什么会出现函数模板函数模板的定义函数模板的语法函数模板当参数函数模板遇上函数重载(函数模板和普通函数成为函数重载)函数模板和普通函数调用规则研究为什么会出现函数模板我们有一个需求,将int,char类型的数据交换?void MySwap01(int& a,int& b){ int temp = a; a = b; ...

2018-08-02 13:58:14 243

原创 面向对象编程和泛型编程

C++不仅支持面向对象编程而且还支持泛型编程,那么我们是否在大脑中清晰的知道什么是面向对象编程和泛型编程吗?那面向过程编程了??(1).面向对象编程简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。 (2).面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块...

2018-08-02 11:10:48 3078

原创 C++ 类(纯虚函数和抽象类)

文章概述纯虚函数和抽象类的基本概念;抽象类案例;抽象类在多继承中的应用以及工程中的多继承;多继承的应用场景 纯虚函数和抽象类的基本概念a. 纯虚函数是一个在基类中只有声明的虚函数,在基类中无定义。要求在任何派生类中都定义自己的版本; b. 纯虚函数为各派生类提供一个公共界面(接口的封装和设计,软件的模块功能划分); c. 纯虚函数声明形式:virtual vo...

2018-07-30 13:03:07 15452

原创 C++ 类(多态(2))

文章概述1.重载,重写,重定义; 2.多态的原理; 3.证明vptr指针的存在; 4.构造函数中调用虚函数,能实现多态吗? 5.父类指针步长是否和子类指针步长一样?...

2018-07-29 21:57:55 251

原创 C++ 类(多态(1))

文章概述1.多态出现的背景(赋值兼容性原则遇上函数重写); 2.多态理论联系实际; 3.多态成立的3个条件; 4.多态的理论基础; 5.多态的C++实现以及多态的实现效果; 6.虚析构函数;多态出现的背景(赋值兼容性原则遇上函数重写)a. 函数重写: 子类中定义与父类原型相同的函数;函数重写发生在父类与子类之间。 b. 如果子类中定义了与父类中原型相同的函数会发生什么?...

2018-07-29 17:25:29 1133

原创 C++ 类(多继承和虚继承)

文章概述多继承的定义以及多继承的语法;虚继承;多继承的定义以及多继承的语法a. 一个类有多个基类,这样的继承关系称为多继承; b. 多继承声明语法:class 派生类名: 访问控制符 基类名1,访问控制符 基类名2 { 数据成员和成员函数声明; }class A: public B,public c{}图示: c. 多个直接基类构造函数...

2018-07-29 16:00:46 24001 5

原创 C++ 类(继承中的构造和析构)

文章概述类型(赋值)兼容性原则;类型(赋值)兼容性原则可以分为2个情况;继承中的对象模型(内存模型);继承中的构造析构调用原则;继承和组合混搭下的构造和析构;继承中同名的成员函数和成员变量处理方法;继承中的static关键字类型(赋值)兼容性原则a. 类型(赋值)兼容性原则的说明: 需要基类对象的任何地方,都可以用公有派生类对象代替。通过公有继承,派生类得到了基类中...

2018-07-29 14:41:45 17212 5

原创 C++ 类(继承的基础知识)

文章概述类之间的关系;继承的基础知识;派生类的语法定义;继承的重要说明;派生类的访问控制;派生类访问控制的结论;类之间的关系1.包含关系: A类中的一个数据成员是B类。 2. User关系: A类部分使用B类。通过类之间的成员函数的相互关系。定义友元函数或者对象参数传递实现。 3. 继承关系: 具有传递性,不具有对称性。 继承的基础知识a...

2018-07-29 12:53:54 35338 2

原创 C++ 类(经典案例)

文章概述本篇文章主要是通过两个经典案例熟悉运算符重载以及自己实现数组类; 初始化的时候可以用NULL,但是赋值的时候不可以的。实现数组类需求: a.能够设置数组的元素 b. 用一个对象初始化另一个对象 c.获取元素//a.能够设置数组的元素 b. 用一个对象初始化另一个对象 c.获取元素class Array{private: //表示的数组的首地址...

2018-07-23 13:48:36 15311

原创 C++ 类(const修饰普通成员函数)

文章概述const修饰普通成员函数全局函数和成员函数const修饰普通成员函数我们知道this指针指向的是具体的对象,普通的成员函数存在(加深记忆),设计this指针的时候格式为*const this(常量指针)。我们看下面的代码://对于这个普通的成员函数const其实放在下面的这3个地方都没有关系的//但是一般放在(3)(1)void (2)func(int x)...

2018-07-21 16:23:15 5418 3

原创 C++ 类(面向对象初探)

文章概述我们需要解决这几个问题: a. C++类对象中的成员变量和成员函数是一起存储的吗?如果不是? b. C++编译器如何管理类和对象,具体的说就是对象调用类中的方法,C++编译器是如何区分哪个具体的对象调用哪个成员方法的?C++类对象中的成员变量和成员函数是一起存储的吗?如果不是?我们应该知道C++有两种成员数据: static,nostatic; 三种成员函数: stat...

2018-07-21 15:34:59 463

原创 C++ 类(静态成员和静态函数)

文章概述静态成员变量静态成员函数class A{ public: static int x; public: static void Func(){}}int A::x=10;静态成员变量a. 关键字static用于说明一个类的成员变量时,该成员为静态成员。静态成员提供了一个同类对象的共享机制; b. 把一个类的成员说明为static时,该类无...

2018-07-21 15:01:46 13196 1

原创 C++ 类(new和delete运算符)

文章概述new和delete运算符new和delete运算符a. new/delete 是C++的运算符;类似于malloc/free,程序运行(动态)得开辟内存空间(堆); b. new 可以为内置类型的变量开辟空间,数组变量,类的对象开辟空间。这是在堆上开辟内存,返回一个指向该内存空间的地址。内置类型开辟空间//开辟内存并且初始化int *a = new...

2018-07-21 14:32:25 13517 2

原创 C++ 类(构造函数的成员初始化列表)

文章概述构造函数的成员初始化列表构造函数的成员初始化列表下面的代码分析了什么时候使用成员初始化列表:class A{ private: int a; public: A(int a) { this->a = a; } int getA() { re...

2018-07-21 13:29:52 6610 1

原创 C++ 类(深拷贝和浅拷贝)

文章概述1.浅拷贝和深拷贝 上一篇文章中,我们提到必要的时候必须手动的写拷贝构造函数。那什么是必要的时候,我们这篇文章分析。浅拷贝和深拷贝我们首先要知道默认拷贝构造函数可以完成对象的数据成员简单的复制,这也称为浅拷贝。对象的数据资源是由指针指向的堆时,默认的拷贝构造函数只是将指针复制。 a. 我们首先分析下面的代码为什么会出错??class Test{private:...

2018-07-21 00:24:41 22426 3

原创 C++ 类(构造函数和析构函数)

文章概述构造函数和析构函数的由来?构造函数和析构函数的基本语法C++编译器构造析构方案 PK 对象显示初始化方案构造函数的分类以及调用默认的构造函数构造函数调用规则构造函数和析构函数的总结构造函数和析构函数的由来类的数据成员不能在类的声明时候初始化,为了解决这个问题? 使用构造函数处理对对象的初始化。构造函数是一种特殊的成员函数,与其他函数不同,不需要用户调用它,而...

2018-07-20 19:00:51 49826 4

原创 C++ 类(封装和访问控制)

文章概述类,对象,成员变量,成员函数的基本概念面向对象的3大概念以及类的封装访问修饰符struct和class的区别类,对象,成员变量,成员函数的基本概念a. 类: 以面向对象的方式开发应用程序时,将遇到的各种事物抽象成类。用户通过实例化类的方式访问类中的数据和成员。 b. 对象: 类的实例。 c. 成员变量: 类中定义的变量。也称为属性。 d. 成员函数: 类中定...

2018-07-20 16:29:36 324

原创 C++ 类(运算符重载(3))

文章概述重载左移操作符和右移操作符重载等号操作符重载左移操作符和右移操作符a. 我们首先知道<<,>>的顺序是从左往右执行的。int a=2;//cout<<a; cout<<endl;cout<<a<<endl;b. 代码:重载<<运算符class Test{

2018-07-20 11:20:26 2202

原创 C++ 类(运算符重载(2))

文章概述定义运算符重载的步骤使用成员函数和友元函数重载二元运算符使用成员函数和友元函数重载一元运算符上一篇,我们已经熟悉重载运算符的理论知识,这篇主要是实际操作(代码)。定义运算符重载的步骤a.我们首先要知道根据操作数的个数将运算符分为一元运算符和二元运算符。 b.定义运算符重载的步骤:明白运算符重载是一个函数,写出函数名称。(函数名称: operator+运算...

2018-07-19 19:43:26 505

原创 C++ 类(运算符重载(1))

文章概述运算符重载出现的原因运算符重载的定义以及好处运算符重载的本质运算符重载的语法使用成员或者友元函数重载运算符的特点运算符重载出现的原因C++编译器知道内置类型如何进行计算,但是默认情况下不知道自定义数据类型是如何进行计算的。C++编译器为程序员提供了一种机制让自定义数据类型有机会进行运算符操作。这种机制就是运算符重载。运算符重载的定义以及好处a. 运算...

2018-07-19 17:46:40 937

原创 C++ 类(友元函数和友元类)

文章概述1.友元函数 2.友元类 我们知道类的私有属性只能在类的内部访问, 能不能通过一种途径可以在类的外部访问? 答案是有的,友元函数。友元函数a. 友元函数的作用: 可以在类的外部访问类的私有属性,但是会破坏类的封装。 b. 友元函数的格式: friend 函数返回类型 函数名(参数列表)。 c. 友元函数声明的位置和类访问修饰符无关。//对象的成员必须初始化...

2018-07-19 16:56:20 3745

原创 C++ 引用

文章概述引用的定义以及格式引用的初始化引用的本质函数的返回值是引用指针的引用以及常量引用引用的定义以及格式a. 引用的定义: 对已定义的变量起的别名。定义引用的时候,必须绑定已定义好的变量。 b. 引用的格式: Type & name =var(已经定义好的变量);int a =10;int&b =a;普通引用必须和绑定的对象的类型相同...

2018-07-15 23:52:10 247

原创 C++ 指针和const

文章概述指向常量的指针常量指针顶层const和底层const指向常量的指针a. 指向常量的指针通过实例说明://其中b就是指向常量的指针const int a = 10;const int*b =&a; b. 指向常量的指针表示的是不能通过指针改变指针所指向的对象,并没有规定指向的对象是否是常量和指向的对象不能通过别的途径改变。int a =...

2018-07-12 16:34:40 264

原创 C++ const的引用

文章概述常量引用的定义常量引用初始化以及分析常量引用常量引用的定义a. 常量引用 : 将引用绑定到const对象上(其实就是对const的引用)。//常量引用的格式:const int &a。const int & a = 10;b. 常量引用表示不能通过引用改变绑定对象的值,但是对象的值可以通过别的方式改变。 int a = ...

2018-07-12 15:29:38 7089 1

原创 C++ 常量和const

文章概述C++中的常量const的说明const的引用4. C++中常量a. 常量: 其值在程序运行的过程中不会发生改变,但是定义常量的时候可以设置初始值。 C++中使用const关键字来定义一个常量。//a是常量const int a=10;b. 对于常量,编译器会将其放在一个只读的内存区域,其值不能发生改变。 c. 使用常量的好处就在于灵活,程序中多次用...

2018-07-12 14:57:57 13770 1

原创 C++ 枚举类型和共用体类型

文章概述我们主要学习的是: 1. 枚举类型; 2. 共用体类型;枚举类型a. 枚举类型的定义以及枚举类型的格式? 枚举类型提供了一组常量的集合。 C++中可以使用关键字enum定义枚举类型,下面是枚举类型的格式://enum 枚举类型名 {常量1,常量2,常量3,常量4...}enum date{Mon,Two,Three,Four};b. 定义枚...

2018-07-11 11:07:50 577

原创 C++ 结构体

文章概述结构体的定义;定义结构体变量的几种方式;访问结构体变量以及结构体变量赋值;定义结构体变量,编译器会分配多大内存的空间。结构体的定义a. 结构体出现的背景 为了表示一些复杂的数据,普通的基本变量无法满足需求。 b. 结构体:表示不同类型变量的集合。通常将一组密切相关的信息组合起来表示一个对象。 c. struct用来声明一个结构体的类型。结构体中的变量...

2018-07-11 10:04:12 5391 1

空空如也

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

TA关注的人

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