黑马程序员技术交流社区
标题:
面向对象继承
[打印本页]
作者:
haohaoxuexi
时间:
2014-4-5 23:15
标题:
面向对象继承
本帖最后由 haohaoxuexi 于 2014-4-6 23:21 编辑
//在继承中使用构造方法
#import <stdio.h>
#import <Foundation/NSObject.h>
@interface TheClass : NSObject
static int count;//此处报错
+ (int) getCount;
@end
@implementation TheClass
- (TheClass*) init
{
self = [super init];
count++;
return self;
}
+ (int)getCount
{
return count;
}
@end
int main()
{
TheClass *tc1 =[TheClass new];
printf("TheClass count is %i\n",[TheClass getCount]);
TheClass *tc2 = [TheClass new];
printf("TheClass count is %i\n",[TheClass getCount]);
return 0;
}
复制代码
请大神门帮修改修改,老是报错它
作者:
程浩
时间:
2014-4-6 09:21
本帖最后由 程浩 于 2014-4-6 09:22 编辑
//在继承中使用构造方法
#import <stdio.h>
#import <Foundation/NSObject.h>
@interface TheClass : NSObject
static int count;//此处报错 //因为你这可是成员变量,不是方法,你应该写在大括号中啊{}
+ (int) getCount;
@end
@implementation TheClass
- (TheClass*) init
{
self = [super init];
count++; //此处你根本没有改变count的指,因为count是静态的变量,你没法改变,而且你应该弄一个对应的指针指向count,通过指针来改变值
return self;
}
+ (int)getCount
{
return count; //count会一直是0
}
@end
int main()
{
TheClass *tc1 =[TheClass new]; //new的这句话可以写成:[[TheClass alloc] init] ,初始化的时候并不会调用你的init,因为你写的不是类方法,是对象方法啊
printf("TheClass count is %i\n",[TheClass getCount]); //这里又弄反了,getCount应该写成对象方法,因为是TheClass这个对象去调用嘛
TheClass *tc2 = [TheClass new];
printf("TheClass count is %i\n",[TheClass getCount]);
return 0;
}
复制代码
作者:
haohaoxuexi
时间:
2014-4-6 19:47
程浩 发表于 2014-4-6 09:21
这是从书上,原封不动得敲下来的代码,谁知道,好多错的,尽信书不如无书
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2