Type 
  TMyObj = Class
  Private 
    Fa:String;
  Public
    Class Function AAA:String;  
    Function BBB:String;
  End;Class Function AAA:String;
Begin
  Result:=Fa;             //为什么不能访问Private中的成员?
End;
//加关键字Class有什么作用?AAA与BBB有什么区别Function :String;
Begin
  showmessage('123')
End;
2:Type 
  TMyObj = Class
  Private 
    Fa:String;
  End;Type
  TObj = Class(TMyObj)
  End;//调用
Obj_1    TMyObj;
Obj_2    TObj;Obj_2.Fa;  //为什么可以通过?

解决方案 »

  1.   

    Class TMyObj.Function AAA:String; //注意这里
    Begin
      Result:=Fa;             //为什么不能访问Private中的成员?
    End;Obj_2.Fa;  //为什么可以通过?
    是因为他们在同一个单元中,同一个单元中的类类似c++中友类,是可以访问私有变量的。但是最好还是定义成protected
      

  2.   

    Class TMyObj.Function AAA:String; //注意这里
    Begin
      Result:=Fa;             //为什么不能访问Private中的成员?
    End;Obj_2.Fa;  //为什么可以通过?
    是因为他们在同一个单元中,同一个单元中的类类似c++中友类,是可以访问私有变量的。但是最好还是定义成protected
      

  3.   

    Class Function AAA:String;
    这样声明是类方法,不需要实例就能使用,如直接
    TMyObj.aaa
      

  4.   

    1,class funtion 是类方法
    其余同意楼上的,
      

  5.   

    靠!怎么成Class TMyObj.Function AAA:String; 了
    是Class Function TMyObj.AAA:String;
      

  6.   

    同意俩位的的说法
    Class Function AAA:String;
    是类方法,作用于类本身,与类的实例没有关系
    对于同一单元,不管是不是具有继承关系,好像是都可以访问类的私有声明,只有位于不同单元的时候,才不允许这样使用。
      

  7.   

    1。CLASS 。可以直接使用,那和实例有什么区别?
    是不是效率上的?
    2。哦,明白了。同一单元是默认的友员。