0
ответов

Что такое VTT для класса?

Недавно столкнулся с новой для меня ошибкой компоновщика C ++. libfoo.so: неопределенная ссылка на `VTT for Foo ' libfoo.so: undefined ссылка на `vtable for Foo 'Я обнаружил ошибку и исправил мою ...
вопрос задан: 13 December 2015 21:13
0
ответов

Виртуальное наследство и ужасный бриллиант

У меня проблемы с ужасным бриллиантом. Напоминаю, что вот классическая иерархия классов этой задачи: B / \ C1 C2 \ / D Для ее решения используется стандартное решение...
вопрос задан: 13 March 2015 01:40
0
ответов

Понижение в алмазной иерархии

Почему static_cast не может выполнять понижающее преобразование с виртуальной базы? struct A {}; структура B: общедоступный виртуальный A {}; struct C: общедоступный виртуальный A {}; структура D: общедоступная B, общедоступная C {}; int main () {D d; A
вопрос задан: 21 May 2014 10:16
0
ответов

Хорошо ли виртуальное наследование от чисто виртуальных (интерфейсных) классов?

Я часто использую чистые виртуальные классы (интерфейсы) для уменьшения зависимости между реализациями разных классов в мой текущий проект. Для меня нет ничего необычного в том, что у меня даже есть иерархии, в которых я...
вопрос задан: 28 June 2013 23:54
0
ответов

Путаница в виртуальном наследовании

Я читаю о наследовании, и у меня есть серьезная проблема, которую я не мог решить в течение нескольких часов: учитывая, что класс Bar - это класс с виртуальными функциями, класс Bar {{1} } {virtual void Cook (); }; Что ...
вопрос задан: 20 June 2013 21:08
0
ответов

Сценарий наследования Diamond -отлично компилируется в G++, но выдает предупреждения/ошибки в VC++/Eclipse

У меня есть базовый класс «Base», который представляет собой чистый виртуальный класс :class Base { public :virtual void A ()= 0; виртуальная пустота B ()= 0; virtual ~Base (){ } // Eclipse жалуется, что класс с...
вопрос задан: 15 August 2012 08:07
0
ответов

Виртуальное наследование и не -конструкторы по умолчанию

Этот код отклонен (как минимум )MSVC, ICC и GCC :класса A { общественное :A (целое ){ } }; класс B :виртуальный публичный A { общедоступный ://B ():A(-1 ){ } // раскомментировать, чтобы сделать его компилируемым...
вопрос задан: 4 August 2012 17:00
0
ответов

Наследовать от нескольких частичных реализаций абстрактного базового класса?

Можно ли иметь несколько частичных реализаций абстрактного интерфейса, а затем собрать эти частичные реализации в один конкретный класс, используя множественное наследование? У меня есть...
вопрос задан: 26 July 2012 05:30
0
ответов

Множественное (ромбовидное) наследование компилируется без «виртуального», но не с

Учитывая следующий код (без виртуального наследования): класс A { общедоступные: виртуальная void f () = 0; }; класс B: общественный A {public: virtual void f () {} }; класс C: общественный A {public: ...
вопрос задан: 21 July 2012 01:53
0
ответов

Виртуальное наследование и интерфейсы

класс IA { общественность: виртуальная пустота a() = 0; }; класс A: виртуальная общедоступная IA { общественность: виртуальная пустота a() { } }; класс IB: виртуальный общедоступный IA { общественность: виртуальная пустота b() = 0; }; class B: ..
вопрос задан: 26 June 2012 12:38
0
ответов

Неоднозначность при множественном наследовании интерфейсов в C++

Я сделал следующий тестовый код:#include использование пространства имен std; #Интерфейс ifndef #определить структуру интерфейса #Endif интерфейс Base { виртуальная пустота funcBase ()= 0; }; interface...
вопрос задан: 27 April 2012 18:21
0
ответов

используя сестринское наследование

предположим, что какой-то (унаследованный)код, который нельзя трогать, объявляет struct B{ public:void f(){} }; и предположим, что у нас есть struct A{ public:virtual void f()=0; }; возможно ли...
вопрос задан: 10 April 2012 05:45
0
ответов

Почему при виртуальном наследовании вызывается конструктор по умолчанию?

Я не понимаю, почему в следующем коде, когда я создаю экземпляр объекта типа «дочь», вызывается конструктор бабушки() по умолчанию? Я думал, что либо конструктор бабушки(int)...
вопрос задан: 28 March 2012 12:57
0
ответов

Доминирование в виртуальном наследовании

Что такое стандарты C ++ 98 / C ++ 03 и точные правила доминирования в виртуальном наследовании будущего стандарта C ++ 0x? Я не прошу только конкретные параграфы, хотя я прошу также ...
вопрос задан: 12 February 2012 21:27
0
ответов

gcc 4.5.1 проблема виртуального наследования

Начнем с фрагмента кода: #include struct God {God () {_ test = 8;} virtual ~ God () {} int _test; }; struct Base1: общедоступный виртуальный Бог {// Base1 () {std :: cout << ...
вопрос задан: 8 February 2012 23:11
0
ответов

Как определить и подтвердить виртуальное наследование для определенного класса?

У меня есть класс C ++, который реализует подсчет ссылок, и я хочу, чтобы все пользователи этого класса унаследовали от него class только виртуально, так что ни один объект не имеет более одного счетчика ссылок. Я бы ...
вопрос задан: 19 December 2011 09:45
0
ответов

Конструкторы / деструкторы абстрактных базовых классов C ++ - общая правильность

Недавно я стал глупым разработчиком, поэтому я сделал решительный шаг, получил книгу по C ++ и научился делать вещи должным образом. В голове я знаю, что хочу делать. Мне действительно нужен интерфейс, который, когда ...
вопрос задан: 14 December 2011 23:53
0
ответов

Статические виртуальные функции в c ++

У меня есть базовый класс и производный класс, и я хочу изменить базовые функции, сохраняя их статическими, поскольку они должны передаваться другим функциям как статические. Как я могу это сделать?
вопрос задан: 25 November 2011 12:01
0
ответов

Размеры классов с виртуальным наследованием в C ++

#include using namespace std; class abc {int a; }; class xyz: общедоступный виртуальный abc {int b; }; int main () {abc obj; xyz obj1; cout << endl << sizeof (obj) ...
вопрос задан: 12 November 2011 16:46
0
ответов

Почему нельзя использовать static_cast для понижающего преобразования, когда задействовано виртуальное наследование?

Рассмотрим следующий код: struct Base {}; struct Derived: public virtual Base {}; void f () {База * b = новое производное; Derived * d = static_cast (b); } Это запрещено ...
вопрос задан: 20 September 2011 12:44
0
ответов

е потребно виртуелно наследство од чисти апстрактни класи (интерфејси)

Зошто во кодот под компајлерот се жали дека PureAb AbstractBase е двосмислена основна класа на MultiplyInheritedClass? Сфаќам дека имам две копии на PureAb AbstractBase во ...
вопрос задан: 19 June 2011 20:45
0
ответов

Is Virtual Inheritance necessary for Exceptions?

I understand the need for virtual inheritance when using multiple inheritance -- it solves the Dreaded Diamond Problem. But what if I'm not using multiple inheritance? Is there a need for virtual ...
вопрос задан: 3 May 2011 18:55
0
ответов

Почему виртуальное наследование необходимо указывать в середине алмазной иерархии?

У меня есть ромбовидная иерархия классов: A / \ BC \ / D Чтобы избежать двух копий для A в D нам нужно использовать виртуальное наследование в B и C. class A {}; class B: ...
вопрос задан: 2 March 2011 10:50
0
ответов

Когда виртуальное наследование - это хороший дизайн?

EDIT3: Пожалуйста, убедитесь, что вы четко поняли, о чем я спрашиваю, прежде чем отвечать (есть EDIT2 и множество комментариев). Есть (или было) много ответов, которые явно демонстрируют непонимание ...
вопрос задан: 5 January 2011 16:52