Re: Система типов
От: Jack128  
Дата: 02.12.14 12:44
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Есть ли система типов, которая позволяет переопределить M<U> как U в наследнике ?


_NN>Например имея Nullable<int> в базовом классе , наследник мог бы определить int , тем самым усиливая условия и удовлетворяя требованием базового.


_NN>
_NN>class A 
_NN>{
_NN> virtual Nullable<int> X { get { return null; } } 
_NN>}
_NN>class B : A 
_NN>{
_NN> override int X { get { return 1; } } 
_NN>}
_NN>


_NN>Ну и далее в общем случае имея скажем List<U> определить в наследнике U или явно пустой список.


В общем случае, например С++:

#include <iostream>
using namespace std;


struct Base {
public:
    virtual ~Base(){}
    
    virtual Base* Clone() { return new Base(*this); }
};

struct Child: Base {
public:
    virtual Child*  Clone() override { return new Child(*this); }
};

int main() {
    // your code goes here
    return 0;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.