A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© haohaoxuexi 中级黑马   /  2014-4-5 23:15  /  797 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 haohaoxuexi 于 2014-4-6 23:21 编辑
  1. //在继承中使用构造方法
  2. #import <stdio.h>
  3. #import <Foundation/NSObject.h>

  4. @interface TheClass : NSObject

  5. static int count;//此处报错

  6. + (int) getCount;
  7. @end
  8. @implementation TheClass

  9. - (TheClass*) init
  10. {
  11.     self = [super init];
  12.     count++;
  13.     return self;
  14. }
  15. + (int)getCount
  16. {
  17.     return count;
  18. }

  19. @end
  20. int main()
  21. {
  22.     TheClass *tc1 =[TheClass new];
  23.     printf("TheClass count is %i\n",[TheClass getCount]);
  24.     TheClass *tc2 = [TheClass new];
  25.     printf("TheClass count is %i\n",[TheClass getCount]);
  26.     return 0;
  27. }
复制代码
请大神门帮修改修改,老是报错它

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

2 个回复

倒序浏览
本帖最后由 程浩 于 2014-4-6 09:22 编辑
  1. //在继承中使用构造方法
  2. #import <stdio.h>
  3. #import <Foundation/NSObject.h>

  4. @interface TheClass : NSObject

  5. static int count;//此处报错     //因为你这可是成员变量,不是方法,你应该写在大括号中啊{}

  6. + (int) getCount;
  7. @end
  8. @implementation TheClass

  9. - (TheClass*) init
  10. {
  11.     self = [super init];
  12.     count++;    //此处你根本没有改变count的指,因为count是静态的变量,你没法改变,而且你应该弄一个对应的指针指向count,通过指针来改变值
  13.     return self;
  14. }
  15. + (int)getCount
  16. {
  17.     return count;  //count会一直是0
  18. }

  19. @end
  20. int main()
  21. {
  22.     TheClass *tc1 =[TheClass new];    //new的这句话可以写成:[[TheClass alloc] init] ,初始化的时候并不会调用你的init,因为你写的不是类方法,是对象方法啊
  23.     printf("TheClass count is %i\n",[TheClass getCount]);   //这里又弄反了,getCount应该写成对象方法,因为是TheClass这个对象去调用嘛
  24.     TheClass *tc2 = [TheClass new];
  25.     printf("TheClass count is %i\n",[TheClass getCount]);
  26.     return 0;
  27. }
复制代码


评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报

这是从书上,原封不动得敲下来的代码,谁知道,好多错的,尽信书不如无书
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马