自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

iFuMI的博客

坚持的魅力往往在于待回首时总会收获付出的感动-BigoSprite

原创 count(1)、count(*)与count(列名)的执行区别

执行效果: 1.  count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了!  从执行计划来看,count(1)和count(*)的效果是一样的。 但是在表做过分析之后,count(1)会比count(*)的用时少些...

2017-09-10 11:04:17 67798 7

原创 一个关于多态的问题

2018华为daniuchang一面 #include using namespace std; class A{ public: virtual void func(int a = 0){ cout << a << endl; } }; cla...

2017-08-25 14:45:43 290 0

转载 不使用virtual关键字实现C++多态

#include using namespace std; /* 不使用virtual实现多态可以用成员函数指针完成。 成员函数指针形式:返回类型(A::*指针名)(形参表) 其中A是类类型,即这个指针是指向A类的成员函数的函数指...

2017-08-24 10:05:36 457 0

原创 2018届秋招提前批阿里在线编程

/* 幼儿园有10个小朋友,把1 – 20中所有奇数数字的卡片分别发给这10个小朋友。 集合的时候小朋友们排成一排,组成一个由数字组成的字符串,如59731315….11917, 但是老师发现少了一个小朋友,你能帮忙找出少掉的那个小朋友吗? 1 3 5 7 9 11 13 15 17 19 ...

2017-08-06 21:05:40 3057 1

原创 《STL源码剖析》之hashtable

hashtable即散列表,也叫哈希表,它对元素的插入、删除和访问操作具有常数时间复杂度的表现,这种表现不依赖于输入元素的随机性。

2017-07-27 10:39:39 308 0

原创 《STL源码剖析》之RB-tree

AVL树之外,另一个被广泛运用的平衡二叉搜索树是RB-tree。所谓红黑树,不仅是一个二叉搜索树,它还满足以下性质: 性质1. 每个节点是红色或黑色; 性质2. 根是黑色; 性质3. 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点) 性质4. 从任一节点到N...

2017-07-25 18:42:44 508 0

原创 平衡二叉搜索树之AVL树

1 什么是二叉搜索树? 二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树...

2017-07-25 16:30:00 428 0

原创 5.1.1 二叉搜索树

《STL源码剖析》之二叉搜索树

2017-07-25 15:58:31 400 0

原创 对含有virtual function的class求sizeof

#include using namespace std; class A { public: virtual void func_1() {} virtual void func_2() {} virtual ~A() {} }; class B { public: virtual...

2017-07-20 11:35:38 255 0

原创 一道考查对象模型的C++笔试题

#include using namespace std; class parent { int i; protected: int x; public: parent() { x = 0; i = 0; } void change() { x++; i++; } void displ...

2017-07-20 11:02:17 244 0

原创 面试题28:不能被继承的类

在C#中定义了关键字sealed,被sealed修饰的类不能够被继承。在Java中同样也有关键字final表示一个类不能被继承。C++11提供final关键字使得类不能够被继承。那么,如何自己实现一个不被继承的类?常规的解法是,把类的构造和析构函数都设置为private即可,然后公有派生;这是因为...

2017-06-13 22:24:52 1788 0

转载 Unity3d 基于NGUI的虚拟摇杆实现

实现效果预览C#代码实现: 使用NGUI添加虚拟摇杆背景和其子物体按钮,为按钮Attach boxcollider和ButtionScript。为按钮添加如下脚本:注意:其中的静态属性可以在控制物体移动的代码中访问用于控制。using UnityEngine; using System.Col...

2016-11-07 15:43:04 2972 1

原创 Cocos2d-x 3.x 生成和加载plist文件

一、创建plist文件在学习《Cocos2d-x 3.x游戏开发之旅》时,点击完屏幕以创建很多炮塔的(x, y)坐标,使用ValueMap把炮塔坐标写入plist文件,保存当前玩家创建的炮塔,以便再次进入游戏时还原之前的炮塔(根据坐标)。下面是创建plist文件的函数:void TowerPosE...

2016-10-26 22:48:56 1221 0

原创 第5章 散列——分离链接法

#include <iostream> using namespace std;typedef int ElementType;struct ListNode { ElementType elem; ListNode* next; };struct HashTable ...

2016-10-18 15:58:23 466 0

原创 队列

一、队列初探队列(queue)是只允许在一端进行插入操作,在另一端进行删除操作。其中,插入元素(即入队列)的一端为队尾(rear),删除元素的一端为队头(front)。与栈不同的是,队列是一种先进先出的线性表,简称FIFO。假设队列q = (a1, a2, …, an),那么a1为队头,an为队尾...

2016-10-14 11:02:30 472 0

原创 3.3 Data Member的存储

一、Static Data MembersStatic data members,处于class之外,存放在程序的data segment之中。每一个static data member只有一个实例,并被视为一个global变量(但是只在class生命范围内可见)。static data memb...

2016-10-09 21:10:11 271 0

原创 3.4 “继承”与Data Member

一、基本Class模型在C++继承模型中,一个derived class object所表现出来的东西,是其自己的members加上其base class(es) members的总和。置于derived class members和base class(es) members的排列顺序,则未在C...

2016-10-09 17:17:38 513 0

原创 3.2 Data Member的布局

一、预热在讨论Data Member布局之前,先看比较常见的笔试题目: 1、 空class class X{}; sizeof(X) : 1。空的class中没有任何data member,大小不应该是0吗?大小之所以为1,是因为编译器安插进去一个char,所以空class实际上隐藏1字节...

2016-10-09 15:04:11 486 0

原创 2.1 Default Constructor的构造操作

编译器何时会自动产生一个default constructor?编译器自动合成的default constructor将会初始化nonstatic member data?程序设计者什么时候需要显式地提供default constructor?程序设计者显式地提供了default construc...

2016-10-09 11:09:08 532 0

原创 2.3 程序转化语意学

一、显式的初始化操作X x0;void foo_bar() { X x1(x0); X x2 = x0; X x3 = X(x0); } 二、参数的初始化把一个class object当做参数传给一个函数(或者作为一个函数的返回值),相当于以下操作:X xx = arg;...

2016-10-08 20:17:10 270 0

原创 4.2 Virtual Member Functions(虚拟成员函数)

一、两个基本概念我们已经讨论过virtual function的一般实现模型:每个class 有一个virtual table,内含该class中有作用的virtual function的地址,然后每一个object有一个vptr,指向virtual table的所在。在C++中,多态表示“以一个...

2016-10-08 15:48:27 521 0

原创 4.1 Member Function的各种调用方式

一、初探Static Member已知Point3d类包含三个data members:float _x, _y, _z;和两个member functions: normarlize()和magnitude()。其中,成员函数的的定义如下:Point3d Point3d::normarlize(...

2016-10-08 12:32:07 456 0

原创 2.4 成员初始化列表

当你写下一个constructor时,你就有机会设定class members的初值。要不就是在member initialization list,要不就是在constructor函数本体之内进行初始化。除了以下四种情况,你的任何选择其实都差不多。下面来看看这四种情况下的微妙的陷阱。下面代码片段...

2016-10-07 15:38:17 291 0

原创 2.2 Copy constructor的构造操作

一、三种情况下的“一个object的内容会作为另一个object对象的初值”1.显式赋初值 class X{ ... }; X x; X xx = x; 2. 作为函数形参 void func(X x);void bar() { ...

2016-10-07 12:33:50 403 0

原创 指针的类型

一、目的 指向class object的指针是如何与一个指向整数或一个指向template vector的指针有所不同?这个问题被很多互联网公司拿来考查面试者,《深度探索C++对象模型》第一章中指针的类型这样写道:“指向不同类型之各指针”间的差异,既不在于指针的表示方法所有不同,也不在于其内容(代...

2016-10-06 19:28:02 380 0

原创 Cocos2d-x 3.x 内存管理机制

1 动机 虽然目前计算机内存已经非常便宜,但也不是说我们可以毫无节制的不恰当的使用。尤其是移动端的内存很吃紧,整个手机的APP共享那么点内存,说不定手机卡死或者运行的APP被强制退出。了解Cocos2d-x内存管理机制以更好地优化游戏资源,尽量降低不必要的内存开销。 2 引用计数的内存管理机制...

2016-09-30 19:52:56 306 0

原创 Cocos2d-x常用设计模式——观察者模式

一、动机及适用情况 二、类图 三、C++代码实现  3.1 头文件Observer.h #include #include using namespace std; // 抽象类 class Observer { public: virtual void update() = 0; };...

2016-09-29 16:01:19 480 0

原创 Cocos2d-x常用设计模式——单例模式

一、UML图 注意:唯一一个私有静态数据成员,构造函数和析构函数声明为私有或保护成员,一个公有的获取单例实例的静态方法。 二、Cocos2d-x中经常使用的单例模式代码 #include class Singleton { public: static Singleton* getIns...

2016-09-28 20:57:20 379 0

原创 C/C++程序的存储空间布局

由于历史原因,C程序一直由下列几部分组成: ★ 正文段。这是由C P U执行的机器指令部分。通常,正文段是可共享的,所以即使是经常执行的程序(如文本编辑程序、C编译程序、s h e l l等)在存储器中也只需有一个副本,另外,正文段常常是只读的,以防止程序由于意外事故而修改其自身的指令。 ★ 初始...

2016-09-28 12:26:27 1244 0

原创 二、登陆场景界面

目录 正文 登陆界面的元素有登陆界面背景、游戏版本(文本格式)、游戏名字logo、游戏角色两个及其进入动画、进入游戏和跳动动画及其背景、游戏声明及其背景。这些就是整个登陆界面的元素,有些是Sprite、有些是LabelTTF创建的文本。具体细节见下面代码。 一、登陆场景头文件——LoginScen...

2016-09-21 15:04:29 440 0

原创 一、logo载入界面

目录 1. 载入logo界面类的实现 2. 设置设计分辨率和屏幕分辨率 3. 加载游戏资源到缓存 内容 一、载入logo界面的类 游戏在启动时,会有短暂各个公司logo的短暂显示,接着进入另外一个场景(往往是主场景),出现logo的这个场景程序往往在后台做了很多事情,比如:游戏的初始化,加载游戏资...

2016-09-20 16:42:31 1042 0

原创 C语言中指针的传值和传址

#include #include void Func(char* p) { p = (char*)malloc(50); } void main() { char* cptr = NULL; // cptr是指向某个内存块的地址,这里是NULL内存块;而在Func函数中,char...

2016-09-18 19:36:51 1561 0

原创 Unix网络编程 卷1 第8章: 基本UDP套接字编程(概述及recvfrom/sendto函数)

一、概述 使用UDP和TCP编写程序时,我们要了解他们的差异。主要是:TCP是面向连接的可靠的字节流传输协议,UDP是无连接的不可靠的数据报传输协议。不同的协议有不同的使用场合,使用UDP编写的一些常见的应用程序有:DNS(域名系统),NFS(网络文件系统)和SNMP(简单网络管理协议)。 下图是...

2016-09-10 17:22:44 1090 0

原创 Unix网络编程 卷1 第11章:名字与地址转换(udp_client_connect_connect)

一、udp_client、udp_connect、udp_server函数 UDP用于访问getaddrinfo的比较简单的接口函数主要为udp_client、udp_connect和udp_server函数,这三个函数定义于《Unix网络编程 卷1:套接字联网API》(简称UNP)的头文件unp...

2016-09-10 16:34:45 433 0

原创 Unix网络编程 卷1 第3章:套接字编程简介(套接字地址结构)

一、IPv4套接字地址结构 IPv4套接字地址结构通常称为“网际套接字地址结构”,它以sockadd_in命名。头文件及声明如下: #include struct sockaddr_in{ uint8_t sin_len; sa_family_...

2016-09-09 19:58:11 622 0

原创 Unix网络编程 卷1 第8章:基本UDP套接字编程(UDP回射客户/服务器程序: main/dg_echo/dg_cli)

一、目的 该博文主要整理《Unix网络编程 卷1:套接字联网》(第三版)以下节目的程序,基础知识详见8.1和8.2节。 8.3 UDP回射服务器程序:main函数 8.4 UDP回射服务器程序:dg_echo函数 8.5 UPD回射客户程序:main函数 8.6 UDP回射客户程序:dg_cli函...

2016-09-08 14:00:09 635 0

原创 座谈会——体会(一)

一、接口思想——接口是程序的源泉和开始 二、类封装变化性 三、如何改善继承引发的父类子类紧耦合? 四、TCP为什么是可靠的? 五、客户端和服务器如何检测对方是否还在线?

2016-09-07 21:17:41 532 0

原创 派生类变量和父类变量同名

如果子类中的变量名和父类中变量名相同,会覆盖父类中的变量吗? #include class B { public: B(){ a = 1; } void printVar(){ std::cout << a << std::endl; } int a; }; ...

2016-09-05 19:03:24 1300 0

原创 操作符sizeof

一、使用sizeof计算普通变量所占的空间 在64位Windows7系统中测试,示例代码如下: #include using namespace std; void func(char str[100]) { cout << sizeof(str) << endl; ...

2016-08-31 11:26:20 381 0

原创 new和delete与内存分配

《Effective C++ 》条款16:成对使用new和delete时要采用相同的形式 通常我们使用new和delete有两种情形,一是动态的为一个对象分配内存,另外一种是动态的创建数组。new和delete的使用需遵循许多规则,这里着重理解相同形式这一关键词。

2016-08-29 20:17:12 1548 0

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