Вопросы по теме 'diamond-problem'

Проблема наследования алмазов
Просто для удовольствия я работаю над реализацией XUL для Windows. В XUL элементы пользовательского интерфейса могут быть записаны в XML следующим образом: <window width="800" height="600"></window> Я рассматриваю систему для...
766 просмотров
schedule 14.05.2023

Алмазная проблема с интерфейсами
Я использую много абстрактных классов, которые определяют только чистые виртуальные функции плюс виртуальный (не чистый) деструктор. Можно ли по-прежнему иметь алмазную структуру наследования без использования виртуального наследования? (Я хотел...
1511 просмотров

Смертельный алмаз смерти в Coq
Я пытаюсь создать довольно простую иерархию типов. Вот минимальный рабочий пример: Record R0 : Type := { R0_S :> Type }. Record R1 : Type := { R1_S : Type; op1 : R1_S -> R1_S }. Record R2 : Type := { R2_S : Type; op2 :...
369 просмотров

Алмаз (множественное наследование) без элементов данных
Допустим, у нас есть обычный ромбовидный узор: class A { public: virtual char foo() = 0; virtual ~A() {} }; class B : public A { public: virtual char foo() { return 'B';} virtual ~B() {} }; class C : public A { public:...
459 просмотров

Алмазное наследство
Предположим, что классы D, E и F наследуются от базового класса B, а класс C наследуется от D и E. (i) Сколько копий класса B появляется в классе C? (ii) Как использование виртуального наследования изменит этот сценарий? Поясните...
914 просмотров
schedule 20.05.2022

Как заставить Doxygen показывать графики наследования алмазов
Doxygen имеет очень удобную функцию, благодаря которой он генерирует графы наследования из кода. Однако при использовании множественного наследования от классов с общей базой на графике показаны два отдельных базовых класса (хотя я использую...
476 просмотров

Общая библиотека: состояние и алмаз
Допустим, у меня есть приложение, которое вызывает библиотеки liba.so и libb.so. Обе эти библиотеки ссылаются на libc.so. Если licc.so хранит некоторую информацию о состоянии, будет ли это состояние одинаковым для liba.so и libb.so? Если да,...
250 просмотров
schedule 23.06.2023

Алмазная проба Scala, найти имя класса из экземпляра класса D
У меня есть четыре черты A, B, C и D в типичной иерархии задач с бриллиантами. Я реализовал метод calculate в трейте A, который проверяет экземпляр callerObject, выполняет некоторые вычисления и возвращает объект типа трейта A. Метод calculate...
129 просмотров
schedule 14.11.2022

Алмаз смерти и оператор разрешения области видимости (С++)
У меня есть этот код (проблема с бриллиантом): #include <iostream> using namespace std; struct Top { void print() { cout << "Top::print()" << endl; } }; struct Right : Top { void print() { cout <<...
1120 просмотров

Преодоление неоднозначности алмаза в абстрактном классе
Я написал фрагмент кода, в котором у меня есть абстрактный базовый класс. Класс Тигр и Класс Лев фактически наследуются от Базового Класса Животных. Лигр наследует как Льва, так и Тигра. Когда я пытаюсь создать объект Liger и получить доступ к...
441 просмотров

Алмазная проблема| Конструктор с параметрами не вызывается из родительского класса
Может кто-нибудь объяснить множественное наследование ниже, почему конструктор параметризации класса d не вызывается, даже если класс транспортного средства создается с использованием конструктора параметризации. #include<iostream> using...
384 просмотров

Почему __init__ пропускается при выполнении Base.__init__(self) в множественном наследовании вместо super().__init__()?
Почему именно A.__init__() B.__init__() D.__init__() печатается по следующему коду? Особенно: Почему C.__init__() не печатается? Почему печатается C.__init__() , если я поставил super().__init__() вместо A.__init__(self)...
204 просмотров