6

自身がインスタンス化されるべきではないコンポーネントを作成しましたが、代わりに継承する必要があります。と同様の概念TThread。このコンポーネントを継承せずに自分自身でインスタンス化しないようにするにはどうすればよいですか? たとえば、オブジェクトがインスタンス化された場合、クラスを継承する必要があるという例外を発生させるか、可能であれば、このコンポーネント ベースのインスタンスが試行される場所でプロジェクトをコンパイルさせないようにします。

4

2 に答える 2

5

XE2 では、クラスを抽象として宣言できます。

type TMyclass = class abstract (TAncestor)

Upd: Delphi ではまだ抽象クラスの作成が許可されているようです (ただし、一部のバージョンのドキュメントでは許可されていないと記載されています)。ただし、コンパイラは警告を表示する必要があります。

おそらく、クラスにはオーバーライドする必要がある仮想メソッドがいくつかあります(そのため、継承する必要があります)。その場合、メソッドを作成するだけabstractで、基本クラスで呼び出されたときに例外が発生します。

于 2013-11-02T22:23:46.143 に答える