Вопросы по теме 'pure-virtual'

Можно ли создать вектор указателей?
Просто интересно, из-за проблемы, с которой я сталкиваюсь, можно ли создать вектор указателей? И если да, то как? В частности, в отношении использования итераторов и .begin() с ним, то есть: как мне превратить этот вектор в вектор указателей:...
27961 просмотров
schedule 08.06.2024

Зачем нам нужен чистый виртуальный деструктор в C ++?
Я понимаю необходимость виртуального деструктора. Но зачем нам чистый виртуальный деструктор? В одной из статей о C ++ автор упомянул, что мы используем чистый виртуальный деструктор, когда хотим сделать абстрактный класс. Но мы можем сделать...
92993 просмотров
schedule 11.07.2022

Чисто виртуальный метод называется
Я понимаю, почему вызов виртуальной функции из конструктора - это плохо, но я не уверен, почему определение деструктора приведет к исключению "чистого виртуального метода с именем". В коде используются константные значения, чтобы сократить...
6921 просмотров
schedule 03.05.2022

чистая виртуальная функция и абстрактный класс
У меня есть следующие классы: Base и Derived, и когда я компилирую, компилятор жалуется, что не может создать экземпляр DLog, потому что он абстрактен. Может ли кто-нибудь сказать мне, как я могу исправить эту ошибку? Я предполагаю, что это...
1430 просмотров
schedule 02.12.2022

Как базовый класс может удовлетворить определение чистой виртуальной функции родителя, используя функцию другого родителя
Я расширяю существующий проект C++. У меня есть базовый класс, производный от двух родительских классов. Один из родителей имеет чисто виртуальную функцию. Я хочу, чтобы эта чистая виртуальная функция определялась функцией, реализованной в другом...
692 просмотров
schedule 08.03.2022

Реализация чистой виртуальной функции C++ и заголовочные файлы
У меня возникли проблемы с реализацией чисто виртуальных функций, унаследованных от какого-то абстрактного класса, когда рассматриваемые классы разделены на файлы *.h и *.cpp . Компилятор ( g++ ) сообщает мне, что производный класс не может быть...
37005 просмотров
schedule 31.05.2023

Всегда ли вызов чистых виртуальных функций косвенно из конструктора неопределенным поведением?
Я работаю над созданием Cppcheck для AIX с компилятором xlC (см. предыдущий вопрос ). Все классы проверки являются производными от класса Check , конструктор которого регистрирует каждый объект в глобальном списке: check.h class Check...
1074 просмотров
schedule 17.04.2022

Может ли класс оставаться чисто абстрактным, если у него есть нечистый деструктор?
Я работаю над упражнением, которое просит меня взять базовый класс Rodent и сделать его чистым абстрактным классом. Мое понимание чистого абстрактного класса заключается в том, что он действует как интерфейс и содержит только чистые виртуальные...
699 просмотров
schedule 26.01.2023

Чистый виртуальный вызов из конструктора и деструктора
Стандарт C++ говорит, что вызов чистой виртуальной функции из конструктора или деструктора запрещен. Что является причиной этого? Почему в стандарте должно быть такое ограничение?
5285 просмотров
schedule 27.06.2023

Множественное наследование с абстрактными и определенными унаследованными функциями с тем же именем
Во-первых, я извиняюсь, если есть другой пост, который отвечает на этот вопрос, все подобные посты, которые я нашел, касались схем алмазного наследования или определенных функций, чего нет в этом. Короче говоря, мне интересно, возможно ли, чтобы...
1512 просмотров

Вызов чистой виртуальной функции
Возможное дублирование: Вызов виртуальных функций внутри конструкторов Посмотри на этот код. В конструкторе базового класса мы можем вызвать чистую виртуальную функцию, используя указатель this. Теперь, когда я хочу создать...
12959 просмотров
schedule 07.03.2024

Есть ли разница между частной и защищенной чистой виртуальной функцией?
Я понимаю, что может быть причина объявить реализованную (в отличие от чистой) виртуальную функцию частной или защищенной. Afaik, если вы объявляете реализованный виртуальный метод как защищенный, ваш дочерний класс может вызывать метод базового...
6522 просмотров
schedule 03.08.2022

Можно ли получить указатель на определение чистой виртуальной функции?
Возможный дубликат: Вызов определения базового класса виртуальной функции-члена с указателем функции Учитывая следующую иерархию: struct Base { virtual void f() = 0; }; void Base::f() { cout << "Base::f\n"; } struct...
220 просмотров

Наследование и чистые виртуальные функции
Я изучаю наследование в С++, и я новичок в абстрагировании чистых виртуальных, базовых и производных классов. Итак, я придумал этот код ниже, он работает, но я не уверен, правильно ли я реализую принципы С++. Пожалуйста, может кто-нибудь оценить...
855 просмотров

В чем смысл чисто виртуальной функции-члена с телом функции?
К своему изумлению я только что узнал, что это законный C ++ struct A { void foo(int) const = 0; // pure virtual // ... }; void A::foo(int) const { /* ... */ } Каковы разумные варианты использования для этого? Т.е. когда будет вызван...
382 просмотров
schedule 09.10.2022

C++ множественное наследование и чистые функции
Меня немного смущает "проблема множественного наследования". Рассмотрим следующий кусок кода: #include <iostream> struct iface { virtual void foo () = 0; virtual ~iface () {} }; struct wrapped { virtual void foo () {...
203 просмотров
schedule 08.02.2023

Стандартный способ С++ для создания абстрактного класса (чистый виртуальный класс)
Начну с того, что большинство из нас уже знает: Если я хочу, чтобы мой класс был абстрактным, я должен определить хотя бы один из его методов как «чисто виртуальный», например, здесь метод someFunction() определен как «чисто виртуальный», так как...
992 просмотров
schedule 30.03.2022

Подпрограмма на чистом Фортране с помощью динамического нарезки
Недавно я прочитал ( здесь ), что чистые подпрограммы могут обеспечить лучшую оптимизацию параллелизма. . Предполагая, что это правда, есть ли способ сделать следующую процедуру чистой? subroutine diff_stag(operator,dfdh,f,T,dir,pad,gt)...
100 просмотров

Чистый виртуальный метод С++ не требует переопределения ключевого слова
Я написал базовый класс с виртуальным чистым методом и двумя производными классами, которые открыто наследуют этот базовый класс. Я использовал «переопределение» для реализации версий чистого виртуального абстрактного базового класса. В Xcode и...
63 просмотров

Можно ли переопределить виртуальную функцию с помощью чистого спецификатора?
Примечание: я не спрашиваю, разумно ли это делать или это хороший дизайн. Я просто спрашиваю, является ли это четко определенным поведением и соответствуют ли результаты ожидаемым. Я столкнулся со следующей иерархией классов: struct A {...
547 просмотров