Borland / Delphi альтернатива ключевому слову __super - PullRequest
7 голосов
/ 30 ноября 2011

Ключевое слово __super является специфическим для Microsoft.Он используется для доступа к виртуальным методам родительского класса.Знаете ли вы альтернативные ключевые слова для компиляторов borland c ++ / delphi?

class MyBaseClass
{
    virtual void DoSomething();
};

class MyDerivedClass : public MyBaseClass
{
    virtual void DoSomething();
};

void MyBaseClass::DoSomething()
{
    // some code
}

void MyDerivedClass::DoSomething()
{
    __super::DoSomething();  // calls implementation of base class - no need to know name of base class

    // implementation specific to derived class adding new functionality
}

Ответы [ 3 ]

9 голосов
/ 30 ноября 2011

Эквивалент в Delphi: inherited.Насколько я знаю, в C ++ Builder нет аналога и, конечно, __super - это нестандартное расширение MS.

8 голосов
/ 30 ноября 2011
  • Delphi: inherited MyMethod(MyParam); или сокращенно inherited;
  • C ++ Builder: MyBaseClass::MyMethod(MyParam);
3 голосов
/ 30 ноября 2011

В Delphi эквивалент унаследован .Вы можете увидеть примеры его использования в источниках RTL и VCL.

...