如何定义一个不继承于任何其他类的类,也就是不继承于Tobject的类?
在delphi中
Tmyclass=class
是否默认了Tmyclass是Tobject的子类?
如果不是,那么
TMsgAccepter=class   //消息接受器类
private
 procedure AcceptMsg2000(var msg:TMyMsg);message 2000;
 procedure AcceptMsg2002(var msg:TMyMsg);message 2002;
public
 procedure DefaultHandler(var Message);override;  //默认消息处理为何可以覆盖Tobject才有的DefaultHandler方法?

解决方案 »

  1.   

    1.是否默认了Tmyclass是Tobject的子类?
    是的2.为何可以覆盖Tobject才有的DefaultHandler方法?
    是如何吧?3.好像delphi不好创建不继承于任何其他类的类,也就是不继承于Tobject的类.不过一般情况下没有这种需要,你为什么需要创建不继承于任何其他类的类?
      

  2.   

    TObject是Delphi中所有类的基类;
    Tmyclass=class
    就是默认了Tmyclass是Tobject的子类?
    完整表述如下:
    TMyclass = Class(TObject);
    如果一个类继承自TObject;可以省略这个TObject。
      

  3.   

    可以,不过这种类delphi不鼓励定义:
    // 例如:
    type
      TMyClass = object
      private
        FX: Integer;
      public
        constructor Init;
        procedure Test;
        destructor Done;
      end;var c: TMyClass;
    var pc: ^TMyClass;
    begin
      c.Init;
      c.Test;
      c.Done;
      pc := New(TMyClass);
      pc^.Init;
      pc^.Test;
      pc^.Done;
      Dispose(pc);
    end;// TMyClass将不继承自任何类
    // c定义后自动获得空间,不需要c := TMyClass.Init这样写。
      

  4.   

    可以不继承TOBJECT类吗????
    不清楚,关注
      

  5.   

    除非你不用DELPHI编译器,否则所有的类继承自TOBJECT
      

  6.   

    Object pascal比不上c++的一个原因就在这里!
      

  7.   

    可以如此定义一个类:
    type
        objTypeName = object(ParentObjType)
           memberlist
        end;if no ParentObjType, then 该类没有父类。Object类型不能有published成员。
    这个类不从TObject派生。因此所有的方法都需要自己写。可以使用New/Dispose来创建及释放。也可以直接声明该类型的变量然后使用,这与一个Record一样。 Delphi不推荐使用这种方法
      

  8.   

    在delphi中,所有的类都是单根继承,祖先类都是tobject类,这个是由object pascal编译器决定的,没有办法的事情!!!因为它要靠几个固定的函数来建立对象,而tobject就提供了这种函数方法!