プログラミング言語 開発スレ( ´�D`)
■ このスレッドは過去ログ倉庫に格納されています
0652566
NGNG> そんじゃEiffel使えば良いんじゃないかと言う気もするが。
そうですね。
これからは提案ではなく参考意見としてレスします。
>>595
Eiffelのクラスは参照型と値型(expanded type)があります。
値型の INTEGER と REAL は
参照型の NUMERIC と COMPARABLE のサブクラスです。
NUMERICやCOMPARABLE に INTEGERやREAL を代入すると
参照型の INTEGERやREAL に変換されます。
型情報は失われません。
(参照型のオブジェクトは型情報を持っています)
値型の変数として宣言できるクラスとできないクラスがあります。
(クラス定義で指定します)
val: expanded FOO -- 参照型のクラスを値型として宣言
また、制限ありの総称の場合
class FOO inherit COMPARABLE -- FOOは参照型
class BAR[T ->COMPARABLE]
[T ->COMPARABLE] は仮総称パラメータで
COMPARABLEを継承しているクラスに制限するという意味。
a: BAR[INTEGER]
b: BAR[REAL]
c: BAR[FOO]
みたいに、参照型と値型のパラメータを一緒に制限することができます。
■ このスレッドは過去ログ倉庫に格納されています