1。pbyte=^byte;
   b:=pbyte(L)^;
上面两句中的^个符号是什么意思??
2。FSortArray:=@SortArray;  这里的@是什么意思??
3。在delphi 中[]和()有什么区别,分别有什么用??哪个表示集合的。
4。overload,override有什么区别??

解决方案 »

  1.   

    建议你看HELP的Object Pascal Referenc部分.说明非常详细.
      

  2.   

    第一个可能是这样
    1。pbyte=^byte;  //定义类型pbyte为一个byte类型的指针
       b:=pbyte(L)^;//强制类型转换l为pbyte类型后取l所指向地址的值
    上面两句中的^个符号是什么意思??
    2。FSortArray:=@SortArray;  这里的@是什么意思??//把sortarray的起始地址赋给指针
                                                      //  变量fsortarray
    3。在delphi 中[]和()有什么区别,分别有什么用??哪个表示集合的。
    //[]表示下标,例如array[1][4],array[1..4],枚举用(),参数用()
    4。overload,override有什么区别??//overload没见过,override是重载函数定义和使用
      

  3.   

    1。pbyte=^byte;  //声明指针类型的语法   b:=pbyte(L)^;//运算符 ^ 用于解除指针参照。该运算符的操作数可以是任何类型的指针,但不能是一般的Pointer类型的指针(如果需要,那么在解除指针参照前必需进行类型转换)。2。FSortArray:=@SortArray;  //@运算符返回变量、函数、过程或方法的地址
    3。在delphi 中[]和()有什么区别,
    //这个我不说了,晕!
    4。overload,override有什么区别??重载方法
     可以使用指示字overload对方法进行再声明。这时,如果再声明的方法与其祖先具有不同的参数标记,那么该方法重载了继承得到的方法而没有对其隐藏。调用后裔类中的方法将会根据调用时给出的参数决定激活哪一个方法。如果要重载一个虚拟方法,那么在后裔类中对其再声明时应使用reintroduce指示字。例如,type  T1 = class(TObject)    procedure Test(I: Integer); overload; virtual;  end;  T2 = class(T1)    procedure Test(S: string); reintroduce; overload;  end;   ...  SomeObject := T2.Create;  SomeObject.Test('Hello!');  // 调用 T2.Test  SomeObject.Test(7);         // 调用 T1.Test在同一个类中不能公布(publish)多个重载的同名方法。运行时信息(RTTI)的维持要求每个公布(published)成员具有唯一的名称。type  TSomeClass = class  published    function Func(P: Integer): Integer;    function Func(P: Boolean): Integer  // 错误     ...被说明符read或write限定、服务于属性的方法不能被重载。覆盖和隐藏
     如果一个方法声明指定的方法标识符与继承得到的方法具有相同的名称但未包括指示字override,那么新的声明只是隐藏(hides)了继承得到的方法而没有覆盖它。在后裔类中,这两个方法都是存在的,这里的方法名称其范围是静态的。例如:type  T1 = class(TObject)    procedure Act; virtual;  end;  T2 = class(T1)    procedure Act;  //Act被再声明,但没有被覆盖(overridden)  end;var  SomeObject: T1;begin  SomeObject := T2.Create;  SomeObject.Act;  //调用T1.Actend; 
      

  4.   

    集合
     集合是指相同序数类型值的集合。集合中的值没有固定的顺序,同一个值在一个集合中最多出现一次(即集合中的元素互不相同的)。The range of a set type is the power set of a specific ordinal type, called the base type; that is, the possible values of the set type are all the subsets of the base type, including the empty set. The base type can have no more than 256 possible values, and their ordinalities must fall between 0 and 255. Any construction of the form集合类型的范围是指定序数类型的幂集(见当前页中编者注),这里所说的“指定序数类型”叫做集合的基类型(base type)。也就是说,集合类型所有可能的值都是基类型的子集,包括空集。基类型不能含有多余256个可能的值,基类型的序号也必需在0到255之间。任何具有如下形式set of baseType(这里的基类型baseType是一个适当的序数类型),都标识了一个集合类型。由于基类型的尺寸局限,集合类型通常用子界类型来定义。例如,声明type  TSomeInts = 1..250;  TIntSet = set of TSomeInts;创建了一个叫做TintSet的集合类型,集合元素的取值范围是1到250。也可以如下声明,达到相同效果type TIntSet = set of 1..250; 对于上面给出的声明,可以有如下代码:var Set1, Set2: TIntSet;//声明集合变量 ...Set1 := [1, 3, 5, 7, 9];//向集合赋值Set2 := [2, 4, 6, 8, 10]//向集合赋值 也可以在变量声明中直接使用set of ... 结构:var MySet: set of 'a'..'z'; ...MySet := ['a','b','c']; 下面是其他集合类型的范例set of Byteset of (Club, Diamond, Heart, Spade)set of Char; in运算符用于测试集合成员:if 'a' in MySet then ... { 相应的处理 } ; 所有的集合都能保存空集,用 [] 表示(一对方括号)。
      

  5.   

    3。在delphi 中[]表示集合
    如  if (adodataset1.state in [dsInsert, dsEdit]) then
    4。overload表示重载,若干函数、过程使用相同的名称,但在参数名称、类型上相互区别
    override覆盖,子类重新定义父类的函数、过程
    后者在出现类的继承关系时才会出现。
    重载
    function add(x,y: integer): integer; overload;    // 实现两个整数相加
    function add(x,y: string): string; overload;      // 实现字符串连接
    这样就避免了为取不同名称所带来的麻烦,更方便