9
ответов

Что такое виртуальный базовый класс в C ++?

Я хочу знать, что такое «виртуальный базовый класс» и что это значит. Позвольте мне показать пример: class Foo {public: void DoSomething () {/ * ... * /}}; Класс Bar: публичный виртуальный Foo {public: ...
вопрос задан: 1 March 2014 13:37
6
ответов

Где «виртуальное» ключевое слово необходимо в сложной иерархии множественного наследования?

Я понимаю основы виртуального наследования C ++. Однако я не совсем понимаю, где именно мне нужно использовать виртуальное ключевое слово со сложной иерархией классов. Например, предположим, у меня есть ...
вопрос задан: 6 August 2010 01:54
5
ответов

C++ несколько виртуальное наследование по сравнению с COM

Сеть переполняется с объяснениями "страшной ромбовидной проблемы". Так StackOverflow. Я думаю, что понимаю, что бит, но мне не удается перевести то знание в понимание чего-то...
вопрос задан: 18 November 2008 22:19
4
ответа

Не может бросить класс со множественным наследованием

Я пытаюсь осуществить рефакторинг некоторый код при отъезде существующей функциональности в такте. Я испытываю затруднения при кастинге указателя на объект в основной интерфейс и затем выводе производного класса позже...
вопрос задан: 23 May 2017 12:16
4
ответа

Разрешение метода заказывает в C++

Рассмотрите следующую иерархию классов: Объект базового класса с виртуальным нечто метода () произвольная иерархия со множественным наследованием (виртуальный и невиртуальный); каждый класс является подтипом Объекта;...
вопрос задан: 22 July 2010 16:08
4
ответа

Является C++ различных компиляторов виртуальными несовместимыми реализациями наследования?

У меня есть иерархия открытых интерфейсов как это: структура ISwitchable {/* Получает указатель на другой реализованный интерфейс того же экземпляра. */виртуальный международный переключатель (неподписанный интервал interfaceId...
вопрос задан: 24 June 2009 14:29
3
ответа

Как виртуальное наследование решает “ромб” (множественное наследование) неоднозначность?

класс A {общественность: пусто поешьте () {суд <<"A"; }}; класс B: виртуальная общественность {общественность: пусто поешьте () {суд <<"B"; }}; класс C: виртуальная общественность {общественность: пусто поешьте () {cout&
вопрос задан: 23 June 2016 01:55
3
ответа

C++ частная виртуальная проблема наследования

В следующем коде кажется, что класс C не имеет доступа к конструктору A, который требуется из-за виртуального наследования. Все же код все еще компилирует и работает. Почему это работает? класс A...
вопрос задан: 4 August 2012 16:45
3
ответа

C++ виртуальное наследование

Проблема: класс Основа {общественность: Основа (Основа* родитель);/* реализует основной материал */}; класс A: виртуальная общедоступная Основа {общественность: (* родитель): Основа (родитель) {}/*... */}; класс B: виртуальный...
вопрос задан: 7 June 2012 23:33
3
ответа

Вызов перегруженного конструктора виртуального базового класса

Есть ли (практический) способ обойти нормальный ( виртуальный) конструктор вызова порядка? Пример: класс А {const int i; public: A (): i (0) {cout << "вызов A ()" << ...
вопрос задан: 10 February 2012 13:29
3
ответа

Виртуальные таблицы и виртуальные указатели для нескольких виртуальное наследование и преобразование типа

Я мало смущен vptr и представлением объектов в памяти и надеждой, можно помочь мне понять вопрос лучше. Полагайте, что B наследовался A, и оба определяют виртуальные функции f ()...
вопрос задан: 24 July 2010 12:13
3
ответа

последний класс в с ++

class Temp {private: ~ Temp () {} друг класс Final; }; Класс Final: виртуальная публикация Temp {public: void fun () {cout << "В базе"; }}; Производный класс: общедоступный ...
вопрос задан: 2 September 2009 08:38
2
ответа

Асимметричный виртуальный ромб Наследования в C++

Таким образом, у меня есть эта идея, и я думаю, что в основном невозможно реализовать в C++..., но я хочу спросить. Я прочитал главу 15 Stroustrup и не получил мой ответ, и я не думаю миллиард...
вопрос задан: 9 April 2018 07:42
2
ответа

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

Я рассматриваю возможность использования виртуального наследования в реальном времени заявление. Влияет ли использование виртуального наследования на производительность так же, как при вызове виртуальной функции? Рассматриваемые объекты ...
вопрос задан: 17 July 2016 02:05
2
ответа

Структура объекта в случае виртуальных функций и множественного наследования

Меня недавно спросили в интервью о структуре объекта с виртуальными функциями и включенным множественным наследованием. Я объяснил это в контексте того, как это реализовано без множественного наследования...
вопрос задан: 26 July 2015 14:34
2
ответа

C++: наследование перегруженного невиртуального метода и виртуального метода оба с тем же именем вызывает проблему

Я пытаюсь наследовать два одинаково именованных метода с различными списками параметров к производному классу. Один из них является виртуальным и переопределяется в производном классе, другой является невиртуальным. Выполнение так...
вопрос задан: 4 August 2010 14:26
2
ответа

Ромб предотвращения множественного наследования C++

Есть ли способ определить класс Foo в C++ так, чтобы я мог наследоваться ему, я не могу "ромб наследоваться" ему Т.е. CAT класса: общественность Foo {}//хорошо класс Собака: общественность Foo {}//хорошо Странный класс: общественность...
вопрос задан: 30 June 2010 14:46
2
ответа

Чистый виртуальный класс и наборы (вектор?)

Я работаю над графическим приложением, которое использует виртуальные классы справедливо экстенсивно. Это имеет: класс изображения, который является по существу набором форм. Класс форм, который является чисто виртуальным...
вопрос задан: 7 March 2010 00:05
1
ответ

Как в компиляторах реализуется виртуальное наследование на языке Си++?

Как компиляторы реализуют виртуальное наследование? В следующем коде: класс A { public: A(int) {} }; класс Б: публичный виртуальный A { публичный: B() : A(1) {} }; класс С: общественный В {...]
вопрос задан: 18 October 2017 03:06
1
ответ

Есть ли какие-либо штрафы / затраты на виртуальное наследование в C ++ при вызове невиртуального базового метода?

Имеет ли использование виртуального наследования в C ++ штраф во время выполнения в скомпилированном коде, когда мы вызываем регулярную функцию-член из ее базового класса? Пример кода: class A {public: void foo (void) {} ...
вопрос задан: 3 May 2013 13:48
0
ответов

Виртуальные таблицы и структура памяти при множественном виртуальном наследовании

Рассмотрим следующую иерархию :struct A { int a; А (){ f (0 ); } A (int i ){ f (i ); } виртуальная пустота f (int i ){ cout << i; } }; struct B1 :виртуальный A { int b1; B1 (целое):А (я ){ е (...
вопрос задан: 30 August 2019 12:10
0
ответов

понимание vptr в множественном наследовании?

Я пытаюсь разобраться в утверждении в книге «Эффективный C ++». Ниже приводится диаграмма наследования для множественного наследования. Теперь в книге говорится, что для vptr требуется отдельная память в каждом классе. ...
вопрос задан: 8 July 2018 18:01
0
ответов

Виртуальное наследование не нарушает статическая композиция?

Последние 5 лет я работал с предположением, что виртуальное наследование нарушает статическую композицию. Но теперь я обнаружил, что статическая композиция все еще сохраняется, есть только дополнительные ...
вопрос задан: 6 June 2018 23:04
0
ответов

C ++, ошибка неоднозначного наследования в vs 2010

У меня есть проблемы с применением полиморфизма в этом примере. Этот вопрос аналогичен моему последнему вопросу C ++, виртуальное наследование, странный абстрактный класс + проблема клонирования. Есть 3 ...
вопрос задан: 23 May 2017 12:26
0
ответов

Должен ли я почти всегда использовать виртуальное наследование в C ++?

Из этой записи я вижу, что виртуальное наследование добавляет sizeof (указатель) к объему памяти объекта. Помимо этого, есть ли у меня какие-либо недостатки, просто использующие виртуальное наследование по умолчанию, и ...
вопрос задан: 23 May 2017 12:09
0
ответов

Эквивалент интерфейсов Java в С++? [дубликат]

Возможный дубликат :Как объявить интерфейс в C++? Интерфейс как в java в c++? Я программист Java, изучаю C++, и мне было интересно, есть ли что-то вроде интерфейсов Java в C+...
вопрос задан: 23 May 2017 11:54
0
ответов

C ++ Наследование через предупреждение о доминировании

Я пытаюсь реализовать довольно большой объект, который реализует множество интерфейсов. Некоторые из этих интерфейсов являются чисто виртуальными. У меня могут быть проблемы с наследованием бриллиантов. Visual Studio сообщает о ...
вопрос задан: 23 May 2017 11:46
0
ответов

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

class A { int i; public: A() {cout<<"in const определения A\n";}; A(int k) {cout<<"In A const\n"; я = к; } }; класс B: виртуальная общественность A { public: B(){...
вопрос задан: 7 December 2016 19:29
0
ответов

Виртуальное наследование в C ++

Я нашел это на веб-сайте, когда читал о виртуальном наследовании в C ++. Когда используется множественное наследование, иногда необходимо использовать виртуальное наследование. Хорошим примером этого является ...
вопрос задан: 7 June 2016 02:56
0
ответов

C ++ не может преобразовать базовый A в производный тип B через виртуальный базовый A

У меня есть три класса: class A {}; класс B: виртуальная публика A {}; класс C: виртуальный публичный A {}; класс D: публичный B, публичный C {}; При попытке статического преобразования из A * в B * я получаю следующую ошибку: ...
вопрос задан: 25 December 2015 17:32