プログラミング言語 開発スレ( ´�D`)
■ このスレッドは過去ログ倉庫に格納されています
0508500
NGNGEiffel or Java式のgenericsだと、パラメータ型の制限を派生もとを指名することで行うので、
するとその場合全てのクラスを示すObjectクラスがあった方が自然じゃないか、と。
しかし、インターフェースや親クラスを指名してメソッドの存在を保証するタイプのgenericsは、
肝心のメソッドが仮想関数になるのであまりgenericsのありがたみが無いような。やはりC++式がいいのかな…?
…で、仮にObjectクラスが無かった時の場合を考えてみたのですが、Objectクラスが無くても、
as演算子でインターフェースを問い合わせられれば手間はともかく「機能的には」困らない気がします。
しかし、as、is演算子がある以上、表に出てこなくても「全てのオブジェクト」を表す何かが
あるのは確かなので、Objectクラスはあった方がわかりやすいのではないか、と…。
非Java式の、つまり継承と無関係に同名のメソッドがあれば呼べるC++的なgenericsを活かすためには、
Objectクラスは(C#やJavaのような仮想メソッド沢山というのを避け)可能な限りシンプルにすべきと思いました。
最低限必要なのはGC時呼ばれるデストラクタとRTTI取得メソッドでしょうか。
Object is class
{
public:
Destructor: ( ) virtual;
GetType: ( ) -> Type;
};
…自分でも突っ込みどころ満載なのは認識してますが、議論再開のきっかけになれば幸いです。
■ このスレッドは過去ログ倉庫に格納されています