Re[4]: В чём смыл ограничения в наследовании в C#?
От: GarryIV  
Дата: 16.06.05 21:03
Оценка:
Hello, Tom!

GIV>> Отсутствие множественного наследования никак не связано с тем что все

GIV>> классы неявно наследуся от System.Object. В нем нет никаких данных
GIV>> так что и проблем с этим не былоб.

T> Отсуствие множ. наследование связанно именно с System.Object.

T> Кстате тоже было и в Delphi, так, что это не я выдумал.

T> К примеру


T>
 T> class Foo : Bar1, Bar2
 T> {
          using Bar1.GetHashCode; // теперь возможно...
 T> }
 T> Foo foo = new Foo();
 T> foo.GetHashCode() // невозможно определить какую именно GetHashCode
 T> необходимо вызывать


Почему невозможно? В языках допускающих множественное наследование это как раз не проблема

#include <iostream>

// Типа наш любимый System.Object
struct Object
{
 virtual int GetHashCode(){return 0;};
};

struct Bar1: virtual Object{};

struct Bar2: virtual Object{};

struct Foo : Bar1, Bar2{};

int main(int argc, char* argv[])
{
 Foo * f = new Foo();
 std::cout << f->GetHashCode(); // все работает
 delete f;
}


Главное чтоб подобъект Object был всегда только в одном экзкмпляре тогда сомнений какую функцию звать не будет. Непреодолимых проблем с этим я не вижу...
Posted via RSDN NNTP Server 1.9
WBR, Igor Evgrafov
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.