texttransformer.jpg

The possibility to work with nested classes is new since Delphi 7. Here an example:


type
      TOuterClass = class
       strict private
          myField: Integer;
       public
          type
             TInnerClass = class
              public
                myInnerField: Integer;
                procedure innerProc;
             end;
         procedure outerProc;
       end;

implementation

procedure TOuterClass.TInnerClass.innerProc;
begin
  // ...
end;

procedure foo;
var
   x: TOuterClass;
   y: TOuterClass.TInnerClass;
begin
   x := TOuterClass.Create;
   x.outerProc;
   //...
   y := TOuterClass.TInnerClass.Create;
   y.innerProc;
end;   

Delphi2C# converts this to:

class TOuterClass : public System::TObject
{
  typedef System::TObject inherited;
private:
  int myField;
public:
  class TInnerClass : public System::TObject
  {
    typedef System::TObject inherited;
  public:
    int myInnerField;
    void innerProc();
    void InitMembers(){myInnerField = 0;}
public:
    TInnerClass() {InitMembers();}
  };  
  void outerProc();
  void InitMembers(){myField = 0;}
public:
  TOuterClass();
};

TOuterClass::TOuterClass() {InitMembers();}


void TOuterClass::TInnerClass::innerProc()
{
  // ...
}

void foo()
{
  TOuterClass* x = nullptr;
  TOuterClass::TInnerClass* y = nullptr;
  x = new TOuterClass();
  x->outerProc();
   //...
  y = new TOuterClass::TInnerClass();
  y->innerProc();
}


   deutsch Deutsch

 

 
Latest News
10/28/24
Delphi2Cpp 2.5: Symbol names matching declaration case [more...]

08/26/24
Delphi2Cpp 2.4: Updated to RAD Studio 12.1 Athens [more...]



"Thanks for your great work, really appreciate the work you have done on zlib and compiling ... test case."


Mattewada, Udayabhaskar
Nokia India 02/01/2021




[from case study...]

"A masterpiece -- Delphi2Cpp has exceeded all my expectations by far."


Tony Hürlimann
virtual-optima 08/20/2011



"First off, I have to say WOW! Delphi2Cpp is doing a *fantastic* job!"


Daniel Flower
linkrealms 01/15/2011


 
This website is generated from plain text with [Minimal Website ]

Minimal Website
Minimal Website is made with TextTransformer

TextTransformer
TextTransformer is made with Borland CBuilder

  borland