自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OC -- 第一个类

OC -- 第一个类  类名:Car属性:轮胎个数、时速行为:跑 完整写一个类:类的声明和实现  1.    类的声明 代码:// NSObject 再Foundation框架中#import // NSObject 基类@interface Car : NSObject{// 声明对象属性(成员变量,默认会初始化为0) 

2014-08-21 22:14:22 1484

原创 Php面向对象 – 单例模式

Php面向对象 – 单例模式 保证类只有一个实例1.    如何可以解决一个类可以被无限地实例化?New,就能实例化一次,怎么去限制,用户不能无限次地new? 将构造方法私有化。所有外部的new都操作失败 class  MySQLDB{        private  function __construct()        {        }

2014-08-19 23:20:07 1409 1

原创 Php面向对象 – 接口

Php面向对象 – 接口 接口:interface php中,我们可以规定,一个对象应该具有哪些公共的外部操作,使用interface来规定。 公共的方法就是接口。用于规定一个对象应该用于哪些公共的操作方法(接口),这个也叫接口(公共操作方法的集合) 接口(interface结构,公共方法集合)公共方法(接口方法) 定义:用于限定某个对象所必须拥

2014-08-19 17:14:27 1230

原创 Php面向对象 -- 抽象类

Php面向对象 -- 抽象类抽象类abstract:有一种类,只能被继承,不能实例化对象。原因就是这个类的定义不完整。因为php支持定义一种,只有方法的声明部分,而没有方法的实现部分的不完整方法。如果某个类,包含了这种不完整的方法,就不是不完整类,也就不能实例化对象。 不完整的类,称之抽象类所包含的不完整的方法,称之抽象方法。  定义:包含抽象方法的类,

2014-08-19 15:30:28 1177

原创 Php面向对象 – Final类

Php面向对象 – Final类 该类,只能被实例化对象不能用于被继承。设计时,该类不能再扩展了,就应该通过语法final限制,其他用户扩展该类。 定义:在class前,增加final关键字。 例子:class Goods{       public  $goods_name;       public  $shop_price;       p

2014-08-19 14:47:52 1097

原创 Php面向对象 – 继承和重写

Php面向对象 – 继承和重写  继承:php中,通过在类上,使用特殊的操作达到目的。通过在定义类时,利用extends来指明当前类对象继承那个类的对象。 例子: class C{       public  $p_c =  “value c”;}  class D extends C{       public  $p_d =

2014-08-19 00:24:39 2166

原创 Php面向对象 – 类常量

Php面向对象 – 类常量 类常量:类中,保存运行周期内,不变的数据。定义:const关键字const 常量名 = 常量值 例子: class Student{       public  $stu_id;       public  $stu_name;       public  $stu_gender;              c

2014-08-18 22:59:37 2740

原创 Php面向对象—静态成员

Php面向对象—静态成员 静态属性 使用static关键字声明的属性该静态属性,在逻辑上,是定义在类上面的属性。保证一个类,对应一个属性。 例子: class Student{public  $stu_id;public  $stu_name; public  static $stu_count = 0; public  functi

2014-08-18 18:26:25 1008

原创 Php面向对象学习笔记 – 构造、析构、对象赋值、克隆

Php面向对象学习笔记 – 构造、析构、对象赋值、克隆 class student{       public  $stu_id;       // 定义成员变量       public  $stu_name;              public  function sayName()   // 成员函数       {              echo

2014-08-18 16:52:09 1464

原创 lua面向对象实现-类实例化对象、继承、多态、多继承、lua单例模式

lua面向对象实现:一个类就像是一个创建对象的模具。有些面向对象语言提供了类的概念,在这些语言中每个对象都是某个特定类的实例。lua则没有类的概念,每个对象只能自定义行为和形态。不过,要在lua中模拟类也并不困难。lua中,面向对象是用元表这个机制来实现。首先,一般来说一个表和它的元表是不同的个体(不属于同一个表),在创建新的表时,不会自

2014-02-26 10:10:00 12670 2

原创 cocos2d-x简单的绘制

1.      如何绘制一个字符串一般使用CCLabelTTF四个步骤:1)初始化CCLabelTTF *pLabel = CCLabelTTF::create(“Hello Cocos2d-x”, “Arial” , 24);参数1:字符串内容参数2:字体参数3:字符串的大小   2)检查CC_BREAK_IF();      CC_BREAK_IF(!pLa

2013-10-13 15:44:46 1038

转载 C指针数组和数组指针的内存布局

一、指针数组和数组指针的内存布局初学者总是分不出指针数组与数组指针的区别。其实很好理解:指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。下面到底哪个是数组指针,哪个是指针数

2013-10-09 23:42:57 1339

原创 c\c++复习基础要点16----枚举类型

枚举类型:   语法格式:          enum 枚举类型名 {变量值列表};例如:     enum  Weekday{sun, mon, tue, wed, thu, fri, set};声明了枚举类型后,就可以定义枚举类型的变量了。定义枚举变量的语法格式为: enum 枚举类型名  标示符;或枚举类型名  标示符; 例如:     enu

2013-10-07 18:06:19 1330

原创 c\c++复习基础要点15----c++运行时类型识别 dynamic_cast typeid type_info

C++提供了两个操作符合一个类来实现运行时类型识别机制,它们是操作符dynamic_cast、操作符typeid和类type_info dynamic_cast操作符: dynamic_cast操作符可以将基类的指针安全地向下转型为派生类指针。语法格式:        dynamic_cast(基类指针)安全转型是指,当基类指针实际指向的对象本身就是该派生类对象,或是由

2013-10-07 01:06:34 2117

原创 c\c++复习基础要点14----容器list

list使用一个双向链表来管理元素。使用list必须含入头文件#include list的能力:list的内部结构和vector或deque截然不同,所以在几个主要方面与vector和deque存在明显区别:1.      list不支持随机存取。如果你要存取5个元素,就得顺着串链一一爬过前4个元素。所以在list中随机遍历任何元素,是很缓慢的行为。2.      任何

2013-10-06 22:20:12 1074

原创 c\c++复习基础要点13---容器deque

容器deque和vector非常相似。它也采用动态数组来管理元素,提供随机存取,并有着和vector几乎一模一样的接口。不同的是deque的动态数组头尾都是开放,因此能再头尾两端进行快速安插和删除。 deque与vector不同的接口: c.push_front(elem);    在头部插入elem的一个副本 c.pop_front();         移除头部元素  

2013-10-06 20:41:13 1147

原创 C++设计模式---中介者模式

中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 中介者模式(Mediator)结构图:  Colleague叫做抽象同事类,而ConcreteColleague是具体同事类,每个具体同事只知道自己的行为,而不了解其他同事类的情况,但它们却都认识中介者对象,Mediator是抽象中介者

2013-10-06 19:45:22 1055

原创 C++设计模式---职责链模式

职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿这条链传递该请求,直到有一个对象处理它为止。 这里发出这个请求的客户端并不知道这当中的哪一个对象最终处理这个请求,这样系统的更改可以在不影响客户端的情况下动态地重新组织和分配责任。  职责链模式结构图:  Handler类,定义一个处理请求的接口

2013-10-06 16:55:59 1002

原创 C++设计模式---命令模式

命令模式(Command):将一个请求封装为一个对象,从而使你可以不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 命令模式结构图:   Command类,用来声明执行操作的接口。 class Command{ protected:    Receiver  *receiver; public:    Comman

2013-10-06 15:46:41 991

原创 c\c++复习基础要点12---容器vector

容器vector:1.vector的能力:vector使用动态数组实现的,所以元素之间总是存在某种顺序,所以vectors是一种有序群集。vector支持随机存取,因此只要知道位置,你可以在常数时间内存取任何元素。在末端附加或删除元素时,vector的性能相当好,可是如果你在前端或中部安插或删除元素,性能就不怎么样了,因为操作点之后的每个元素都必须移到另一个位置,而每一次移动都得调用赋

2013-10-05 23:03:01 1379

原创 C++设计模式---桥接模式—合成/聚合复用原则

桥接模式:合成/聚合复用原则:尽量使用合成/聚合,尽量不要使用类继承。     合成和聚合都是关联的特殊种类。聚合表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分;合成则是一种强的‘拥有’关系,体现了严格的部分和整体关系,部分和整体的生命周期一样。 比如:大雁有两个翅膀,翅膀与大雁是部分和整体的关系,并且它们的生命周期是相同的,于是大雁和翅膀就是合

2013-10-05 16:47:14 1527

原创 C++设计模式---迭代器模式

迭代器模式(Iterator):提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 迭代器模式结构图:   typedef String  object;Iterator迭代器抽象类: class Iterator{ public:    virtual  object&  First()=0;    virtual

2013-10-05 01:07:04 1332

原创 c\c++复习基础要点11----对象的浅拷贝和深拷贝

默认的拷贝构造函数与对象的浅拷贝问题 如果定义类时,没有为其声明拷贝构造函数,则编译器会为类自动生成一个拷贝构造函数,这个由编译器自动生成的拷贝构造函数称为默认的拷贝构造函数。默认的拷贝构造函数的功能就是把参数对象内容按字节拷贝给当前正在创建的对象。  对象的浅拷贝: #includeusing namespace std; class A{ pub

2013-10-04 21:23:56 1193

原创 C++设计模式----组合模式

组合模式(Composite):将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对象单个对象和组合对象的使用具有一致性。 组合模式结构图: 理解: 1.       Component是组合对象的基类,定义了类的公共方法;提供一个访问和管理子组件的方法。管理子组件的方法:Add-添加子组件;Remove-移除子组件; 2.       Lea

2013-10-04 20:25:54 1020

原创 C++设计模式---备忘录模式

备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。 备忘录模式结构图:  Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。Originator可根据需要决定Memento存储Originator的哪些内

2013-10-04 15:42:59 963

原创 C++设计模式----对象适配器模式

适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 对于适配器模式有两种类型:类适配器模式和对象适配器模式类适配器模式:通过多重继承对一个接口和另一个接口进行匹配,只有c++适合 对象适配器模式 适配器模式结构图:  Target类:这是客户所期待的接口。目标可以

2013-10-04 14:25:35 1127

原创 c\c++复习基础要点10---智能指针

C++标准库提供的auto_ptr是一种智能指针,帮助程序员防止“被异常抛出时发生资源泄露”。 auto_ptr的设计动机:1.       获得一些资源2.       执行一些动作3.       释放获取的资源如果一开始获取的资源被绑定于局部对象身上,当函数退出时,它们的析构函数被调用,从而自动释放这些资源,然而事情并不是总是如此顺利,如果资源是以显式手法获得,而且没

2013-10-03 23:02:07 1084

原创 C++设计模式-----状态模式

状态模式(State):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。当然,如果这个状态判断很简单,那么就没必要用‘状态模式’了。 状态模式结构图:                  相关类的解

2013-10-03 19:13:39 1110

原创 C++设计模式---观察者模式

观察者模式:观察者模式又叫分布-订阅模式观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。  观察者模式(Observer)结构图:    结构图及观察者模式结构代码解释: Subject类:可翻译为主题或抽象通知者,一般用一个抽象类或者

2013-10-02 23:28:05 1036

原创 C++设计模式-----建造者模式\生成器模式

问题:     如果我们想写一个建造人的类,我们可以这样写: class Person{ public:    void BuildHead();    void BuildBody();    void BuildArmLetf();    void BuildArmRight();    void BuildLegLeft();    void Bu

2013-10-01 02:11:25 1438

原创 C++ 设计模式—外观模式

外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式(Facede)结构图:   四个子系统的类: class SubSystemOne{ public:    void  MethodOne()    {          cout    }};  c

2013-09-30 22:03:35 935

原创 c\c++复习基础要点09---关键字explicit c++四种类型转换

1.      关键字explicit通过关键字explicit的作用,我们可以禁止“单参数构造函数”被用于自动类别转换。在 C++ 中, 如果一个类有只有一个参数的构造函数,C++ 允许一种特殊的声明类变量的方式。在这种情况下,可以直接将一个对应于构造函数参数类型的数据直接赋值给类变量,编译器在编译时会自动进行类型转换,将对应于构造函数参数类型的数据转换为类的对象。如果在构造函数前加上

2013-09-30 20:17:32 1290

原创 c\c++复习基础要点08--c++单例模式

单例模式有许多种实现方法,在c++中,甚至可以直接用一个全局变量做到这一点,但是这样的代码显得不优雅。使用全局对象能够保证方便地访问实例,但是不能保证只声明一个对象——也就是说除了一个全局实例外,仍然能创建相同类的本地实例。  定义一个单例类,使用类的私有静态指针变量指向类的唯一实例,并用一个公有的静态函数获取该实例。 定义: class CSingleton{ p

2013-09-29 23:34:57 1029

原创 c\c++ 复习基础要点07---内存存储 大端模式、小端模式

首先不管大端法还是小端法存储,计算机在内存存放数据的顺序都是从低地址到高地址。所不同的是首先取低字节的数据存放在低地址还是取高字节数据存放在低地址。 若首先取高字节的数据放在低地址,则是大端法;若首先取低字节的数据存放在低地址,则是小端; 例如数据0x1234567  (左边是高字节,右边是低字节) 大端法存放:内存地址依次为:          0x0001 

2013-09-29 00:24:13 1684

原创 c\c++ 复习基础要点06---联合体

联合体union 当多个数据需要共享内存或者多个数据每次只取其一的时候,可以利用联合体。1.      联合体是个结构;2.      它的所有成员对于基地址的偏移量都为0;3.      联合体的结构空间要大到足够容纳最“宽”的成员;4.      其对齐方式要适合其中所有成员; 由于联合体中的所有成员是共享一段内存的,因此每个成员存放的首地址相对与联合体变量的地

2013-09-28 19:12:14 1082 1

原创 c\c++复习基础要点05---assert断言及其自定义实现

assert宏:   assert宏其实很重要,对于调试程序来说。  assert宏的原型定义在assert.h中  #include   void  assert(int exp);  assert的作用是计算表达式exp,如果其值为假(即为0),那么它先打印一条出错信息,然后通过调用abort来终止程序运行。  assert就是为了确定一个条件为真,如果不为真,则给出出

2013-09-28 15:12:53 2336

原创 c\c++ 复习基础要点04 C与C++程序的内存结构的不同

C与C++内存机制的不同 C与C++的内存机制虽然非常相似,但还是有些不同的地方 一.C内存机制1.      栈(Stack):栈内存只在程序运行时出现,在函数内部使用的变量、函数的参数以及返回值将使用栈空间,栈空间由编译器自动分配和释放。2.      堆(Heep):由malloc()/calloc()/realloc分配空间,free()释放所申请的空间。如

2013-09-28 00:51:41 1387

原创 c++复习基础要点03 虚析构函数、虚函数表

1.虚析构函数的作用:  当基类对象指针通过new动态创建一个子类的对象时,通过该指针释放子类对象时,如果基类的析构函数不是虚函数,则释放该对象时只会调用基类的析构函数而不会调用子类析构函数。这样子类释放对象时就无法释放已分配的资源。如果基类的析构函数为虚函数,则在基类对象指针去释放子类对象时,就会先调用子类的析构函数,在调用基类的析构函数: #includeusing nam

2013-09-27 17:04:14 1190

原创 c++复习基础要点02 虚函数与模板 与static inline是否共存

1.      虚函数能否定义为模板函数当一个类有虚函数时,它一定有一个虚表,用来纪录每个虚函数的实际地址。这也就是说这个虚表的大小是在编译期就确定了的。有多少个虚函数,虚表就纪录几个。       类中的模板函数函数会根据具体的类型而实例化,这也就是说这个模板函数会实例多少个函数出来是不知道的,这样,虚表的大小就不好确定了。所以在现有的编译器的情况下,虚函数不能是模板函数。当然以后可能会

2013-09-27 14:55:47 1932

原创 c/c++ 复习基础要点01-const指针、指针函数 函数指针、new/delete与malloc/free区别与联系

1.      引用本身是有指针实现的:引用为只读指针例子:     int d=123;     int& e=d;    //引用     int * const e=d; //只读指针,e指向d,不可修改e指向别的变量 2.      const修饰指针问题2.1.指向const对象的指针:      const double *cptr;        

2013-09-27 01:02:44 2254

空空如也

空空如也

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

TA关注的人

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