Jump to content
pyscripter

Virtual class methods and properties

Recommended Posts

The following will not compile (error: class property accessor can be a class field or a static class method) :

 

  TTest = class
  private
    class function GetName: string; virtual; abstract;
  public
    class property Name: string read GetName;
  end;

 

whilst the following does:

 

  TTest = class
  private
    class function GetName: string; virtual; abstract;
  public
    property Name: string read GetName;
  end;

 

My question is that since you can have virtual class methods, why not properties that behave accordingly? 

 

In SmallTalk, the first object oriented language, you have a distinction between:

  • instance variables (aka properties)
  • class variables (aka class properties - one per class including subclasses)
  • class instance variables  (one per class, subclasses can change the value)

Share this post


Link to post

Class property Getter/Setters must be static, however delphi doesn't allow virtual abstract static methods. I don't see a good reason for this, so it's likely technical or an oversight. 

 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×