Help us understand the problem. What is going on with this article?

<5> (標準) Pascal へのオブジェクト指向拡張 (Pascal へのオブジェクト指向拡張の歴史と Delphi)

5. (標準) Pascal へのオブジェクト指向拡張

1993 年の (標準)Pascal へのオブジェクト指向拡張はドラフトのまま放置されました。

余談ですが、このドラフトには 『J&W』改訂者のジム・F.マイナー氏や、Apple のカート・J.シュマッカー氏、Borland のデビッド・インターシモーヌ氏が参加しています。

5.1. ドラフトのオブジェクト指向拡張案

クラス型は型宣言部 (type) にて "型名 = class (親クラス) ~ end;" として定義します。

3.1.1. クラス型の定義

次のようにしてクラスを定義できるようです。

type
  TCls = class (root) { root を継承したクラス型 TCls の定義 }
    FValue: Integer;
  end;

ドラフトでのクラスをざっと確認しましたが、次のような特徴があるようです。

  • ルートクラスは Root です。
  • 多重継承可能です。
  • クラスには 3 つの種類があります。
    • 具象クラス (Concrete Class):
      具象クラスは、オブジェクトを作成できる唯一のクラスです (class)。
    • 抽象クラス (Abstract Class):
      抽象クラスは、クラス階層のプレースホルダーです (abstract class)。
    • プロパティクラス (Property Class):
      プロパティクラスは、特性・属性・またはプロパティを提供します (property class)。
  • 抽象メソッド (abstract) があります。
  • オーバーライドメソッド (override) があります。
  • コンストラクタ (CONSTRUCTOR Create;) があります。
  • デストラクタ (DESTRUCTOR Destroy;) があります。
  • (オーバーライドメソッドでよく使う) INHERITED 文があります。

3.1.1. クラス型の作成と破棄

クラスの作成と破棄は次のようにして行うようです。

type
  TCls = class(root)
    ...
  end;

var
  Cls: TCls;
begin
  Cls := TCls.Create;
  ...
  Cls.Destroy; 
end;

コンストラクタとデストラクタですね。デストラクタは明示的に呼び出すようになっているようです。次のような代替案も示されてはいますが、具体的な事は書かれていません。

  • オブジェクトを破棄するための定義済み手続き (Free メソッドや Dispose のような) を呼んだときにデストラクタが呼び出される
  • オブジェクトが不要になると暗黙的にデストラクタが呼び出される (ARC のような)

ドラフトの実装は存在しないため、実際にどのような動作をするのかを試す事はできませんが、なんとなくやりたい事は解る気がします。

索引

[ ← <4> Turbo Pascal のオブジェクト指向拡張 ] [ ↑ 目次へ ] [ → 6. Dephi のオブジェクト指向拡張 ]

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした