6
ответов

Переопределяющие общедоступные виртуальные функции с закрытыми функциями в C++

Есть ли существует какая-либо причина сделать полномочия на переопределенной виртуальной функции C++ отличающимися от базового класса? Есть ли при этом опасность? Например: основа класса {общественность:...
вопрос задан: 25 January 2016 23:57
6
ответов

Когда создается виртуальная таблица в C ++?

Когда именно компилятор создает таблицу виртуальных функций ? 1) когда класс содержит хотя бы одну виртуальную функцию. ИЛИ 2) когда непосредственный базовый класс содержит хотя бы один виртуальный ...
вопрос задан: 5 November 2014 05:48
6
ответов

Множественное наследование + путаница виртуальной функции

У меня есть ромбовидный сценарий множественного наследования как это: / \B C \/D общий родитель, A, определяет виртуальную функцию fn (). И для B и для C действительно ли возможно определить fn ()?...
вопрос задан: 27 July 2011 15:04
6
ответов

Неожиданный вывод для виртуальной функции [дубликат]

Может кто-нибудь объяснить, почему вывод следующего кода: B: 2? Как переменная x получает значение num при отсутствии вызова A :: print (int) #include & lt; iostream & gt; класс A {...
вопрос задан: 24 June 2011 07:54
6
ответов

Примеры использования чистых виртуальных функций с телом?

Я недавно узнал это в C++, чистые виртуальные функции могут дополнительно иметь тело. Каковы реальные варианты использования для таких функций?
вопрос задан: 9 April 2010 17:52
6
ответов

Почему все методы Java являются неявно переопределяемыми?

В C++ я должен явно определить 'виртуальное' ключевое слово для создания функции членства 'переопределяемой', поскольку там включает издержки составления виртуальных таблиц и vpointers, когда функция членства сделана...
вопрос задан: 7 May 2009 20:02
6
ответов

Безопасно переопределите виртуальные функции C++

У меня есть базовый класс с виртуальной функцией, и я хочу переопределить ту функцию в производном классе. Есть ли некоторый способ осуществить проверку компилятора, если функция я объявил в производном классе...
вопрос задан: 30 January 2009 23:08
5
ответов

Функция членства класса может обработать по шаблону быть виртуальной?

Я услышал, что шаблоны функции членства класса C++ не могут быть виртуальными. Действительно ли это верно? Если они могут быть виртуальными, что такое пример сценария, в котором использовал бы такую функцию?
вопрос задан: 4 September 2019 15:42
5
ответов

Зачем нам нужны виртуальные функции в C ++?

Я изучаю C ++, и я только вхожу в виртуальные функции. Из того, что я прочитал (в книге и онлайн), виртуальные функции - это функции в базовом классе, которые вы можете переопределить в производных классах. ...
вопрос задан: 11 November 2017 12:00
5
ответов

Одна из моих функций-членов, которая является чисто виртуальной пустотой, имеет ошибку LNK 2019 [duplicate]

Я работаю над рисованием фигур, используя строки с C ++. Поэтому я написал класс Shapes, который служит базовым классом для 2 производных классов, которые являются Diamond и Square. Моя виртуальная функция void setStars () ...
вопрос задан: 13 November 2015 01:12
5
ответов

Откуда “чистая виртуальная функция называет” катастрофические отказы прибывшими?

Я иногда замечаю программы, которые отказывают на моем компьютере с ошибкой: "чистый вызов виртуальной функции". Как эти программы даже компилируют, когда объект не может быть создан из абстрактного класса?
вопрос задан: 11 June 2015 11:47
5
ответов

Перегруженное разрешение вызова виртуальной функции

Рассмотрите следующий код: класс Понижает {}; класс A1:public Понизьте {}; класс A2:public A1 {};//и т.д. класс Bbase {общественность: виртуальная пустота f (Понижают* a); виртуальная пустота f (A1* a);...
вопрос задан: 26 August 2014 12:36
5
ответов

Стиль C++: Добавление префикса виртуального ключевого слова к переопределенным методам

У меня было обсуждение с моими коллегами относительно ли к переопределенным методам префикса с виртуальным ключевым словом, или только в инициирующем базовом классе. Я склонен снабжать префиксом все виртуальные методы (это...
вопрос задан: 28 June 2013 23:50
5
ответов

Почему invokevirtual Java должен разрешить класс времени компиляции вызываемого метода?

Рассмотрите этот простой класс Java: класс MyClass {общественность освобождает панель (MyClass c) {c.foo (); }} я хочу обсудить то, что происходит на строке c.foo (). Исходное, Вводящее в заблуждение Примечание Вопроса: Не все...
вопрос задан: 7 April 2010 01:30
5
ответов

Почему заменяемые в горячем режиме vtables не являются популярной функцией языка?

В объектно-ориентированном программировании иногда хорошо смочь изменить поведение уже-созданного-объекта. Конечно, это может быть сделано с относительно подробными методами, такими как стратегия...
вопрос задан: 20 December 2009 16:35
5
ответов

Моделирование виртуального статического члена класса в C++?

Там должен так или иначе иметь своего рода виртуального статического участника в C++? Например: класс BaseClass {общественность: BaseClass (константа string& имя): _name (имя) {} представляют GetName в виде строки () константа {...
вопрос задан: 29 August 2008 15:54
4
ответа

Виртуальная таблица C++

Я считал много людей, пишущих, что "виртуальная таблица существует для класса, которому объявили виртуальную функцию в ней". Мой вопрос, делает vtable, существует только для класса, который имеет виртуальную функцию или...
вопрос задан: 9 February 2017 21:22
4
ответа

Почему виртуальное присвоение ведет себя по-другому, чем другие виртуальные функции той же подписи?

При проигрывании с реализацией виртуального оператора присваивания я закончил забавным поведением. Это не незначительный сбой компилятора, с тех пор g ++ 4.1, 4.3 и доля VS 2005 то же поведение. В основном...
вопрос задан: 27 May 2013 16:29
4
ответа

Проверка спецификатора доступа для виртуальных функций [duplicate]

class Base {public: virtual void func () {cout & lt; "база"; }}; class Derived: public Base {private: void func () {cout & lt; & lt; «Полученный»; }}; int ...
вопрос задан: 21 May 2013 12:19
4
ответа

Заголовочный файл C++ и объявление функции, заканчивающееся в “= 0”

У меня есть следующий код в.h файле, и я не уверен, что делает оператор присваивания и как это называют правильно? виртуальный пустой урожай () = 0; я думал, что функция возвращается...
вопрос задан: 26 March 2010 12:40
4
ответа

Виртуальная функция заменена не виртуальной [дубликат]

Сегодня я нашел что-то, что меня действительно удивило: #include & lt; iostream & gt; использование пространства имен std; класс A {public: virtual void reset () = 0; }; class B: public A {public: virtual ...
вопрос задан: 27 October 2009 06:40
4
ответа

Как я могу получить полиморфное поведение в конструкторе C++?

У меня есть базовый класс, что я хочу быть похожим на это: класс B {//должен быть похожим: интервал I () {возвращает someConst;} виртуальный интервал I () = 0; общественность B () {что-то (я ()); }} точка быть к...
вопрос задан: 21 September 2009 07:14
4
ответа

виртуальный C++ оператора присваивания

Оператор присваивания в C++ может быть сделан виртуальным. Почему это требуется? Мы можем сделать другие операторы виртуальными также?
вопрос задан: 21 March 2009 20:42
4
ответа

Каково преимущество этого косвенного вызова функции?

Я нашел следующий код в библиотеке: класс Панель {общественность: нечто bool (интервал i) {возвращают нечто _ (i);} частный: виртуальное bool нечто _ (интервал i) = 0;}; Теперь я задаюсь вопросом: Почему Вы использовали бы это...
вопрос задан: 19 March 2009 17:50
3
ответа

Там альтернативы к полиморфизму в C++?

CRTP предлагается в этом вопросе о динамическом полиморфизме. Однако этот шаблон предположительно только полезен для статического полиморфизма. Дизайн, на который я смотрю, кажется, затруднен speedwise...
вопрос задан: 23 May 2017 12:13
3
ответа

переопределение защитило внутренний с защищенным!

Это - расширение для этого вопроса, спросил час назад. Мы не можем изменить модификаторы доступа при переопределении виртуального метода в производном классе. Рассмотрите класс Управления в Системе. Сеть. Пространство имен UI...
вопрос задан: 23 May 2017 10:29
3
ответа

Общедоступная виртуальная функция, полученная частный в C++

Я пытался выяснить то, что происходит, когда производный класс объявляет виртуальную функцию как частную. Следующее является программой, что я записал #include <iostream> использование станд. пространства имен; класс A {...
вопрос задан: 8 June 2015 11:13
3
ответа

Why are C# interface methods not declared abstract or virtual?

C# methods in interfaces are declared without using the virtual keyword, and overridden in the derived class without using the override keyword. Is there a reason for this? I assume that it is just ...
вопрос задан: 8 July 2013 22:00
3
ответа

Я могу вызвать виртуальную функцию базового класса, если я переопределяю ее?

Скажите, что я имею классы Foo и Запираю набор как это: класс Foo {общественность: интервал x; виртуальная пустота printStuff () {станд.:: суд <<x <<станд.:: endl; }}; класс Панель: общественность Foo {...
вопрос задан: 8 July 2013 06:39
3
ответа

объявить функцию класса inline [duplicate]

Я хочу реализовать i член функции класса в моей main () для использования функций оттуда. У меня этот класс: класс CMD {public: CMD (); ~ КМД (); виртуальный ...
вопрос задан: 24 February 2012 01:49