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