type
TMyBaseClass = class
end;TMyClass1 = class(TMyBaseClass)
end;TMyClass2 = class(TMyBaseClass)
end;const
  MyClassList : array [0..1] of TMyBaseClass = (
    TMyClass1,
    TMyClass2); // 这样是错误的const
  MyClassList : array [0..1] of TClass = (
    TMyClass1,
    TMyClass2); // 这样才可以我只是想利用一下基类。为什么不可以?

解决方案 »

  1.   

    TMyBaseClassClass = class of TMyBaseClass;
    const
      MyClassList : array [0..1] of TMyBaseClassClass = (
      TMyClass1,
      TMyClass2); // 这样ok
    我操~!
      

  2.   

    type
      TMyClass = class of TMyBaseClassconst
      MyClassList : array [0..1] of TMyClass = (
      TMyClass1,
      TMyClass2); 
      

  3.   

    似乎还没用过类的常量数组,不明白 数组里的是类  而不是类的实例 
    Mark 下   有待研究
      

  4.   


    Class of 是类引用, Class是类,两者是有区别的.
    以下是一段基础说明:
    有时业务上执行一个类本身,而不是实例
    一类(即对象)。这种情况发生,例如,当您调用
    构造方法使用一个类的引用。你总是可以指一个特定的
    类使用它的名字,但有时有必要声明变量或
    作为参数值班,在这种情况下你需要
    类引用类型。
      

  5.   

    呵呵~ 跟了一下 TCLASS,   TClass = class of TObject;
      

  6.   

    这篇文章跟常量 (Const) 有什么关系??
    本人正学习,因为本人也有这样的疑问。。
      

  7.   

    每次数组 (Array) 设定时,常量(Const)都会随伴吗??
    为什么,这篇文章的数组要用常量呢?
      

  8.   

    array [] of 数据类型
    数据类型好像只能是系统默认的
      

  9.   

    通常都是放到TList里面进行管理
      

  10.   

    实际运用的话,我们一般都自己封装TObjectList来管理实际运用到的对象。
      

  11.   

    正解
    TMyBaseClassClass = class of TMyBaseClass;//定义了数据类型
    const
    MyClassList : array [0..1] of TMyBaseClassClass //当然是正确的MyClassList : array [0..1] of TMyBaseClass //是类而不是数据类型
    还是有区别的吧,没有无缘无故的错
      

  12.   

    定義數據類型
    TMyBaseClassClass = class of TMyBaseClass;const
    MyClassList:array [0..1] of TMyBaseClassClass;
    類:
    MyClassList:array [0..1] of TMyBaseClass; 
      

  13.   

    有啥好心痛的,又不是RMB,而且结贴有回扣的 -.-
      

  14.   

    另外
    LZ定义的类名也怪怪的,按VCL类命名规则,LZ定义的TMyBaseClass像元类一样,一般都是TMyBase
      

  15.   

    这个数组,让我分析到头都大了。。
    还是不明白 >.<;;