类的成员被定义为protected后,应该是能被子类访问,但不能被他的对象访问但下面的这段程序却可以运行,并通过。
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TTest = class
  protected
    a:integer;
  public
  end;
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var aaa:TTest;
begin
  aaa := TTest.Create;
  aaa.a :=1;
  showmessage(inttostr(aaa.a));
end;end.
同样的,在java也可以访问,以下一段在JBuilder中通过:
import java.*;
public class mydesireclass extends myclass {
    protected int value2=1;
}import java.*;public class test3 {
    public test3() {
        
    } 
    public static void main(String[] args)
    {
        mydesireclass cdtest = new mydesireclass();
        System.out.print(cdtest.value2); 
    }
}但在vc里对象却是不能访问protected的.请问应该如何理解protected???

解决方案 »

  1.   

    DELPHI里同一个单元中定义的东西,在本单元里都可以调用~要问为什么就要去问DELPHI的设计者 了
      

  2.   

    嘿嘿,在一个单元里,不但protected,Private都能访问。看基础书,别大惊小怪。
      

  3.   

    只是广告
    请大家支持下。。谢谢!
    http://community.csdn.net/Expert/topic/3632/3632147.xml?temp=.2835962
    http://community.csdn.net/Expert/topic/3607/3607671.xml?temp=.128689