TMemoryStream 私有变量FSize 访问父类私有变量

本文详细介绍了Delphi中的TCustomMemoryStream和TMemoryStream类,包括类的属性和方法,如SetCapacity、Clear等,并解释了子类如何访问父类的私有变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCustomMemoryStream = class(TStream)
  private
    FMemory: Pointer;
    FSize, FPosition: NativeInt;
  protected
    procedure SetPointer(Ptr: Pointer; const Size: NativeInt);
  public
    function Read(var Buffer; Count: Longint): Longint; override;
    function Read(Buffer: TBytes; Offset, Count: Longint): Longint; override;
    function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
    procedure SaveToStream(Stream: TStream); virtual;
    procedure SaveToFile(const FileName: string);
    property Memory: Pointer read FMemory;
  end; // deprecated 'Use TBytesStream';

{ TMemoryStream }

  TMemoryStream = class(TCustomMemoryStream)
  private
    FCapacity: Longint;
    procedure SetCapacity(NewCapacity: Longint);
  protected
    function Realloc(var NewCapacity: Longint): Pointer; virtual;
    property Capacity: Longint read FCapacity write SetCapacity;
  public
    destructor Destroy; override;
    procedure Clear;
    procedure LoadFromStream(Stream: TStream);
    procedure LoadFromFile(const FileName: string);
    procedure SetSize(NewSize: Longint); override;
    function Write(const Buffer; Count: Longint): Longint; override;
    function Write(const Buffer: TBytes; Offset, Count: Longint): Longint; override;
  end; // deprecated 'Use TBytesStream';


procedure TMemoryStream.Clear;
begin
  SetCapacity(0);
  FSize := 0;
  FPosition := 0;
end;


子类如何访问父类的私有变量

不怪不怪  因为它们在同一个单元中,也算是友类了

Delphi当中同单元(Unit)当中就可以访问。
因为在Delphi2007及之后,增加了strict关键字,比如strict private,那样就无法访问了。         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值