Fraction.h  #import  
  
static int t=0;  
@interface Fraction: NSObject{  
          int numerator;//分子  
          @public int denominator;//分母  }  
-(void) setNumerator: (int) numerator;//numerator 的setter 方法  
-(void) setDenominator: (int) denominator;//denominator 的setter 方法  -(void) setNumerator: (int) numerator andDenominator: (int) denominator;  
//一个同时设置两个成员变量的快捷方法  
-(int) numerator;//numerator 的getter 方法  
-(int) denominator;//denominator 的getter 方法  -(void) print;  
+(void) t;  
@end  --------------------------------------------------------------------------------------------#import \"Fraction.h\"  
int main(int argc,const char *argv[]){  
        Fraction *frac=[[Fraction alloc] init];  
        [frac setNumerator: 3 andDenominator: 5];  
        printf(\"The denominator of Fraction is %d\\n\",frac->denominator);  ///   第三行
        [frac release];  
        return 0;  
}  第三行在 C  的 printf()函数中使用了对象->成员变量的语法访问实例的变量,但一般我 
     们不推荐这么做,而是使用 getter 方法。这里你不能访问 numerator变量,因为它是 
   @protected  的,只能本类、子类直接访问。  问 “这里你不能访问 numerator变量,因为它是 @protected  的,只能本类、子类直接访问。  ” 是什么意思???
   不能使用frac->numerator来访问嘛?为什么可以frac->denominator?我试了 可以用frac->numerator来访问

解决方案 »

  1.   

    denominator是public
    另外,numerator前面也没有加@protected。默认public
      

  2.   

    为什么可以frac->denominator? denominator是public
    不能使用frac->numerator来访问嘛?因为它是@protected的,因为默认是@protected的,只能本类子类直接问。
    你可以参考博客http://blog.csdn.net/kindazrael/article/details/8062784至于你 你试了可以用frac->numerator来访问
    没用过这种写法不知道frac->numerator会不会调用下面的getter方法
    -(int) numerator;//numerator 的getter 方法   
    你可以把这个方法注释掉再试
      

  3.   

    别把OOP的思想用在OBJC上,非常的不好用