В delphi/objectpascal - разница между "процедурой somemethod()" и "процедурой класса somemethod()"
У меня возникают трудности с пониманием разницы между следующими (аналогичными) определениями процедур. Кроме того, мне интересно, как определить, когда и почему использовать 2-е определение.
#1 - стандартное определение рутины
type TFigure = class public function Supports(Operation: string): Boolean; virtual; procedure GetInfo(var Info: TFigureInfo); virtual; ... end;
#2 - рутина, предваряемая ключевым словом "класс"
type TFigure = class public class function Supports(Operation: string): Boolean; virtual; class procedure GetInfo(var Info: TFigureInfo); virtual; ... end;
Что я уже пробовал:
Я погуглил эту тему и не могу найти простого, прямого определения того, когда/почему использовать ключевое слово "класс".
2 примера в моем вопросе были взяты с сайта Embarcadero - я просто удалил "класс" для примера №1. Я не видел никакой документации re: конкретные различия или когда/почему предисловие с ключевым словом "класс".
Это уже довольно давно не дает мне покоя, и я очень ценю любое разъяснение.
б.