Не может ли проблема алмазов быть решена с помощью первого найденного унаследованного объявления?Я имею в виду,
public class A {
public virtual int getInt();
};
public class B : public A {
public int getInt() {return 6;}
};
public class C : public A {
public int getInt() {return 7;}
};
public class D: public B, public C {};
для class D
, так как B
указан первым, не могли бы мы просто по по умолчанию (когда это неоднозначно) использовать B::getInt()
, если D::getInt()
называется?Как работает переменная окружения PATH в UNIX и других ОС;если две вещи существуют с одним и тем же именем в разных местах в переменной PATH, то первое местоположение должно использоваться по умолчанию (если не указано иное).
Редактировать: под 'первым' найдено наследуемое объявление, я имею в виду простой порядок глубины слева направо
Редактировать # 2: Просто обновил вышеупомянутую реализацию, чтобы она была более похожа на ромб.