08 2013 档案
摘要:首先需要说明的是每个应用程序都是一个window,背景色为黑色。在window上可以跑多个view进行来回切换,下面就通过手动写代码来体现导航栏切换view的原理。第一步,新建一个single view工程,然后再新建一个带xib文件的UIviewController。程序结构如下图:第二步,在cidpAppDelegate.m文件中修改- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;方法,在函数体中实例化一个UINaviga
阅读全文
摘要:所有的视图都继承自 UIViewController,都使用- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;来初始化视图,所以一般初始化的数据或者变量都是在这个方法中。首先建一个single view 工程,然后再添加一个view。结构如图:单击单开 cidpViewController.xib 文件,在视图上面拖放一个UIbutton 和一个 UILable,并且在cidpViewController.h文件中声明一个变量和一个方法,然后将UIbutton 和对应的方法连线, U
阅读全文
摘要:NSDictionary(字典),NSDictionary类似于 .net中的parameter,l类似于java中的map。通过唯一的key找到对应的值,一个key只能对应一个只,而多个key可以对应同一个值。NSDictionary 在初始化之后,就不可以再进行修改。使用类方法创建NSDictionary对象。初始化一个NSDictionary对象。使用+ (id)dictionaryWithObject:(id)object forKey:(id)key;NSDictionary* dic = [NSDictionary dictionaryWithObject:@"value
阅读全文
摘要:第一个字符串://必须在字符串的前面加上@符号, NSString* str=@"shouqiang_Wei";//输出以%@输出。NSLog(@"%@",str);结果:2013-08-21 14:06:22.963 NSNumber[611:707] shouqiang_WeiNSString 类原型: 1 @interface NSString : NSObject 2 3 /* NSString primitive (funnel) methods. A minimal subclass of NSString just needs to imp
阅读全文
摘要:1 #import 2 //xieyi 3 @protocol showOn 4 @required 5 -(void)printOn; 6 @end 7 // lei 8 @interface MyPoint : NSObject{ 9 int x;10 int y;11 }12 @property (nonatomic,assign)int x,y;13 -(id)initWithX:(int)_x andY:(int)_y;14 @end15 // leibie fenlei16 @interface MyPoint(MoveSet)17 18 -(void)mov...
阅读全文
摘要:1 #import 2 //xieyi 3 @protocol showOn 4 @required 5 -(void)printOn; 6 @end 7 // lei 8 @interface MyPoint : NSObject{ 9 int x; 10 int y; 11 } 12 @property (nonatomic,assign)int x,y; 13 -(id)initWithX:(int)_x andY:(int)_y; 14 @end 15 // leibie fenlei 16 @interface MyPoint(MoveSet)...
阅读全文
摘要:实现Square类,让其继承自Rectangle类,并在Square类增添新属性和方法,在2的基础上,在Square类中重写Rectangle类中的初始化和打印方法 1 #import 2 3 @interface Rectangle : NSObject{ 4 int width; 5 int height; 6 } 7 @property int width,height; 8 -(int) area; 9 -(int) perimeter;10 -(void)setWidth:(int)w andHeight:(int)h;11 -(void)print;12 13 ...
阅读全文
摘要:1 #import 2 3 @interface Rectangle : NSObject{ 4 int width; 5 int height; 6 } 7 @property int width,height; 8 -(int) area; 9 -(int) perimeter;10 -(void)setWidth:(int)w andHeight:(int)h;11 12 @end13 14 15 #import "Rectangle.h"16 17 @implementation Rectangle18 @synthesize width,height;19 -(.
阅读全文
摘要:1 #import 2 @protocol show 3 @required 4 -(void)printOn; 5 @end 6 7 @interface XYPoint : NSObject{ 8 int x; 9 int y;10 }11 @property (nonatomic,assign)int x,y;12 -(id)setX:(int)_x andY:(int)_y;13 14 @end15 16 #import "XYPoint.h"17 18 @implementation XYPoint19 @synthesize x,y;20 21 -(id)se.
阅读全文
摘要:2013-08-21在Objective-C,包括int double float 等等再内的基础数据类型都不是一个类,所以就不能给它们发送消息,也就是说不能调用方法,那怎么办呢 ?Objective-C提供了一个NSNumber类来作为一个中转,可以将所有的普通数据类型转化为NSNumber类型,这样就符合Objective-C的消息机制了。NSNumber #import int main (int argc, const char * argv[]){ @autoreleasepool { //初始化NSNumber使用格式: numberWith+...
阅读全文
摘要:
阅读全文
摘要:在c++中我们可以多继承来实现代码复用和封装使程序更加简练。在objective-c中只能单继承,不能多继承,那么除了协议protocol之外,我们可以实现类似多继承的一个方法就是,分类(category,又称类别)。类别可以不修改原来的类(父类),和派生类的情况下,为原有的类增加新的方法,但是分类不能增加实例变量。格式(format):@interface class_name(category_name)method _declaration;....@end@implementationclass_name(category_name)method_implementation;...@
阅读全文
摘要:复合类5.复合类现实中,复杂的对象都是由较小和较为简单的对象构成;由简单对象创建复杂对象的过程称作合成。合成通常使用在有has-a关系的对象;通常的基本数据类型可以满足构造简单和小的对象。为了从小的对象创建复杂的对象,C++提供了复合类-将小的类作为复合类的成员变量复合类的好处:A)每个单独的类可以保持相对简单和直观,负责其自己的任务;B)每个对象可以自包含,更易重用;C)复合类使用简单的类完成复杂的工作,只需注重子类之间的数据流程。XYPoint类XYPoint.h文件#import @interface XYPoint : NSObject{ int x; int y;}@proper..
阅读全文
摘要:属性声明(property declarations), 自定义属性,自动生成 get 和 set 方法,getter 和 setter一、普通的get 和set 属性。一般的get 和set 属性。就是在get 中返回一个变量的值,而在set 属性中给一个变量赋值,一般的我们也把他们称之为接口,用来访问类的私有(private)或者保护(protected)成员。Circle.h文件#import @interface Circle : NSObject{ int radius; int x; int y;}-(int)getX;-(int)getY;-(int)getRadius;-...
阅读全文
只有注册用户登录后才能阅读该文。
摘要:Objective-C 起源与发展Brad J. Cox designed theObjective-C language in the early 1980 .布兰德于1980年设计的Objective-C语言。1998年 NEXT SOFTWARE 颁发了Objective-C 并且开发了类库和开发环境,叫做NEXTSTEP。几乎大部分的cocoa都是基于NS的。这也就是为什么Objective-C 中的类都是以NS开头的原因。1996年苹果公司收购了NEXT SOFTWARE,从此Objective-C用来为苹果设计OS X 系统。Objective-C:加强版的C,基于c语言设计的,.
阅读全文
摘要:#include #include typedef struct node { int name[5]; struct node *next; } student;struct node* creatList(int n){ int i=0; student *head,*p; head=(student*)malloc(sizeof(student)); head->next=NULL; printf("请输入%d个数据,来创建链表\n",n); for(;iname)); p->next=head->next; head->next=p; } r
阅读全文
摘要:#include #define MAX 100void dispaly(int a[],int n){ for(int i=0;ia[j+1]) { int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } dispaly(a,n); }}//insert sort 插入排序void insertSort(int a[],int n){ for(int i=1;i0 &&a[j]a[j+1]) { min=a[j+1]; index=j+1; } } int temp=a[i]; a[i]=min; a...
阅读全文
摘要:Inheritance&&polymorphism层次概念是计算机的重要概念。通过继承(inheritance)的机制可对类(class)分层,提供类型/子类型的关系。C++通过类派生(class derivation)机制来支持继承。继承是使子类可以使用父类的成员,达到代码的复用和类的抽象 被继承的类型称为基类(base class)或超类(superclass),新产生的类为派生类(derived class)或子类(subclass)。基类和派生类的集合称作类继承层次结构(hierarchy)。如果基类和派生类共享相同的公有接口,则派生类被称作类的子类型(subtype)
阅读全文
摘要://菱形继承 ||||||| 虚继承#include using namespace std;class R{ int r;public: R(int i=0):r(i) {} virtual void printOn() { coutprintOn(); return 0;}
阅读全文
摘要:#include
#include
using namespace std; class Complex
{
public: Complex(float r=0,float i =0):_r(r),_i(i) { } void print() const { cout<<" _r "<<_r<<" _i "<<_i<<endl; }
private: float _r; float _i;
public: const Complex& operator+=(const Complex &
阅读全文
摘要:一般的我们喜欢这样对对象赋值:Person p1;Person p2=p1;classTobject(another_object),orAa(b);classTobject=anotherobject;classA{//…};intmain(){Ax;Ay(x);//…Az=x; z=y;}这样的话,如果成员变量中有指针的话,就容易造成指针的二次删除。这样就需要我们显示的在类中实现1、拷贝构造,2、赋值运算符重载。 1)、判断是不是自赋值,2)、释放旧空间,3)、开辟新空间。4)、内容本身的 拷贝,5)、返回*this3、析构函数(释放指针指向的空间)。这三步使类实现深拷贝,从而避免...
阅读全文
摘要:在C++中,所谓“继承”就是在一个已存在的类的基础上建立一个新的类。已存在的类(例如“马”)称为“基类(base class )”或“父类(father class )”。新建的类(例如“公马”)称为“派生类(derived class )”或“子类(son class )”。以上介绍的是最简单的情况:一个派生类只从一个基类派生,这称为单继承(single inheritance),这种继承关系所形成的层次是一个树形结构。一个派生类不仅可以从一个基类派生,也可以从多个基类派生。一个派生类有两个或多个基类的称为多重继承(multiple inheritance)。关于基类和派生类的关系,可以表述
阅读全文
摘要:c++,vc6.0,中友元函数,无法访问私有字段(private)的问题(problem),cannot access private member declared in class 'Date'代码如下:#ifndef _DATE_H_
#define _DATE_H_
#include
using namespace std; class Date
{
public: Date(); Date(int y,int m,int d); void printOn();
private: int _year; int _mounth; int _day; friend cons
阅读全文
摘要:#include
using namespace std;
class Vector
{
private: int *dwp; int size; void clone(const Vector v) { this->size=v.size; this->dwp=new int[size]; for(int i=0;idwp[i]=v.dwp[i] } } void dispose() { delete[] dwp; // 删除指针指向的空间,如果不删除,在调用析构函数的时候只会释放指针本身所占用的内存。 }
public: //拷贝构造, Vec...
阅读全文
摘要:#include using namespace std;
class Demo
{
private: int dwint;
public: Demo(int i=0):dwint(i) { coutdwint=a.dwint; cout<<"assignment operator used"<<endl; return *this; }
};
Demo func(Demo d)
{ Demo demo; demo=d; return demo;
}
int main()
{ Demo a(4); { Demo b; b=func(a); } Dem
阅读全文
摘要:当构造函数只有一个参数(或者有多个参数,但是其他参数都带有默认值,(有默认值的参数靠右排放),这样就可以在调用的时候只传一个参数,)就可以被用来做类型转换,#include
#include
using namespace std;
class String
{ int len ; char * rep;
public: String():len(0) { rep=new char[1]; strcpy(rep,""); } String(char* s) { if(!s) { len=0; rep=new char[1]; strcpy(re...
阅读全文
摘要:++运算符重载有前置和后置两种,所以要定义一个参数 int来区分前置和后置,带int参数的代表后置,然后再后置函数里面调用前置函数,这样的话就保持了和前置函数一样的自增幅度。在前置函数里面要返回对象的引用,在后置函数里面返回一个对象的拷贝,而对对象进行自增。//单目运算符重载 ++ #include
using namespace std;
class Fraction
{ private: int den; int num; public: Fraction(int d=1,int n=0):den(d),num(n) { } //前置 prefix ...
阅读全文
摘要:== 运算符重载既不能是成员函数也不能是友元函数,只能是普通函数。#include
using namespace std; class Vector
{ public: Vector(int s,int an_array[]); ~Vector() { delete []rep; } int get_size()const { return size; } //重载等号= const Vector& operator=(const Vector & x); int operator[] (int index) { retur...
阅读全文
浙公网安备 33010602011771号