Почему имена классов C ++ Builder и Delphi начинаются с буквы T? - PullRequest
4 голосов
/ 18 июня 2020

Как классы TObject, TForm, TComponent.

Почему они начинаются с буквы «T»?

Что означает «T»?

1 Ответ

16 голосов
/ 18 июня 2020

T означает «тип», и он используется как обычный префикс для невстроенных типов в целом, а не только для типов классов:

type
  TFileName = type string; // string
  TErrorCode = 1..100; // subrange type
  TCarSize = (csSmall, csMedium, csLarge); // enumeration
  TCarSizes = set of TCarSize; // set
  TPersonRec = record // record
    FirstName: string;
    LastName: string;
    Age: Integer;
  end;
  TSuperBitmap = class(TBitmap) // class
    {...}
  end;
  TDeviceData = array[0..1023] of Byte; // static array
  TLogProc = procedure(const AMessage: string; AKind: TLogKind); // procedural type
  // and so on

Однако обычные префиксы для типов указателей, типов исключений и типов интерфейса: P, E и I соответственно:

type
  PPersonRec = ^TPersonRec;
  ESyntaxError = class(EScriptException);
  ISoundPlayer = interface
    {...}
  end;

Существует несколько других соглашений, например F для полей:

type
  TCar = class
  strict private
    FModel: string;
    FColor: TColor;
    FWeight: Double;
  end;

И A для аргументов:

procedure MyShowMessage(const AMessage: string; AIconType: TIconType);

Иногда люди используют L для локальных переменных:

procedure MyShowMessage(const AMessage: string; AIconType: TIconType);
var
  LCaption: string;
  LIcon: HICON;
begin

end;
...