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

C++ Коллекция экземпляров, реализующих чистый виртуальный класс
Я работаю на кроссплатформенном С++, и некоторые классы определены так: (сильно упрощено для этого примера) class ExampleBase { public: ExampleBase( int blah ) : blah_test(blah) { } virtual void DoSomething( ) = 0; private: int...
894 просмотров
schedule 06.05.2023

Используется виртуальная функция-член, если она не чистая?
C++03 3.2.2 ... Используется объект или неперегруженная функция, если ее имя появляется в потенциально оцениваемом выражении. Виртуальная функция-член используется, если она не чистая ... А затем в 3.2.3 мы имеем: Каждая программа должна...
415 просмотров

C++, бриллиантовое наследование, где/когда нужно реализовать чистые виртуальные машины?
C++: у меня есть базовый класс A с чистой виртуальной функцией f(), а затем два класса B и C виртуально наследуются от A, и класс D, который наследуется как от B, так и от C (типичная ромбовидная структура): A f() = 0 v/ \v B C \ / D...
582 просмотров

Использует ли чистый абстрактный класс С++, объявленный в заголовке, используемом в разных проектах (без привязки времени компиляции), одну и ту же модель виртуальной таблицы?
У меня есть заголовок С++, объявляющий класс, состоящий только из чистых виртуальных методов. У меня есть две библиотеки DLL, использующие этот заголовок (с одной реализацией этого интерфейса), но не связанные во время компиляции. Одна DLL...
280 просмотров
schedule 27.03.2024

С++: используйте чистую виртуальную функцию в невиртуальной функции
Я пытаюсь создать базовый класс, определяющий интерфейсы для всех производных классов. Я хотел бы иметь функцию, которая позволяет читать файл конфигурации для этого класса, который довольно гладко работает с использованием boost::property_tree ....
436 просмотров
schedule 26.05.2024

Можно ли реализовать абстрактный класс без чистых виртуальных функций в C++?
Я думал об использовании защищенного конструктора , но он не мог полностью решить задачу, поскольку класс, унаследованный от него, мог бы создать экземпляр базового класса. Что касается приватного конструктора , производные классы также не будут...
4645 просмотров
schedule 19.06.2022

абстрактные классы С++, использующие чистые виртуальные функции в нечистых виртуальных функциях
Я хочу создать абстрактный класс с чистой виртуальной функцией, которая вызывается НЕ чисто виртуальным конструктором. Ниже мой файл class.hpp : #ifndef __CLASS_HPP__ #define __CLASS_HPP__ #include <iostream> class Parent { public:...
1606 просмотров
schedule 07.07.2022

Объявление чистой виртуальной функции в базовом классе с объектом производного класса в качестве аргументов
Заранее извиняюсь, если эта тема уже поднималась и решалась. Я хотел бы создать базовый класс с чистой виртуальной функцией (абстрактный класс), чтобы при создании производного класса от него пользователь был обязан реализовать тело этой функции в...
2104 просмотров

C++: чистый виртуальный деструктор в абстрактном классе с членами
Я только начал изучать С++ и наткнулся на эту проблему. Я написал этот абстрактный класс с чистым виртуальным деструктором: #ifndef ANIMAL #define ANIMAL #include <string> using namespace std; class Animal { public: Animal();...
1814 просмотров

Виртуальные чистые функции
Я понимаю, что чисто виртуальная функция внутри класса делает этот класс абстрактным . Это означает, что я не могу создавать объекты с этим классом и что я должен переопределить эту виртуальную функцию во всех производных классах. У меня есть...
95 просмотров

Как я могу переопределить чисто виртуальный метод, используя частно унаследованный метод?
У меня есть следующее: class Abstract { virtual void AbstractMethod() = 0; }; class Implementer { void AbstractMethod() {}; }; class Concrete : public Abstract, private Implementer {}; Я не могу создать экземпляр Concrete , потому...
235 просмотров

Множественное наследование абстрактных классов с чистыми виртуальными методами с тем же именем?
Если наследовать два абстрактных класса с помощью чисто виртуального метода с тем же именем, что произойдет, если я реализую этот метод? Я реализую их для обоих абстрактных классов или компилятор выбирает один для реализации?...
636 просмотров

Есть ли чистая виртуальная функция в стандартной библиотеке С++?
В лекции Николы Гиганте в 2015 году , он упоминает (в начале), что в стандартной библиотеке нет чисто виртуальных функций (или он не знает о них). Я полагаю, что Алекс Степанов был против этой языковой функции, но с момента первоначального...
2178 просмотров

boost::python чистый виртуальный базовый класс со статическим конструктором фабрики и std::unique_ptr
Я просмотрел все связанные вопросы, которые смог найти, и не смог найти ответ на эту конкретную ситуацию. У меня есть чистый виртуальный интерфейс базового класса С++, который я хочу предоставить Python. Реализация наследуется от Base и не...
191 просмотров
schedule 16.01.2023

CRTP вызывает segfault
У меня есть чистый виртуальный класс Interface : class Interface { public: virtual ~Interface() noexcept; virtual void open()=0; virtual void close()=0; protected: explicit Interface(const string params); string params_;...
115 просмотров
schedule 30.09.2023

Недопустимый абстрактный тип
Итак, у меня проблема с абстрактным классом! Это продукт.h #ifndef PRODUCT_H #define PRODUCT_H #include <string> using namespace std; class Product { private: string description; int d,m,y; float weight;...
4558 просмотров
schedule 10.07.2023

Может ли абстрактный класс иметь конструктор и частный член в С++ 11
Подобные вопросы задают, но они не дают ответа на мой вопрос. Я пытаюсь создать абстрактный класс (с одной чистой виртуальной функцией). Но компилятор выдает эту ошибку: src/library.cpp:11:24: ошибка: недопустимое приведение к типу...
407 просмотров
schedule 15.05.2023

Как обозначить чистую виртуальную функцию на диаграмме классов UML?
Я студент, изучаю С++. Я создаю диаграмму классов UML для своей программы, которая включает в себя наследование и абстрактные/конкретные классы, но я не слишком уверен, как обозначить чисто виртуальную функцию. Любая помощь приветствуется, спасибо!
14208 просмотров

C++, обеспечивающий реализацию чисто виртуального метода из другой иерархии наследования
У меня есть класс Parent и два класса Child : class Parent { }; class Child1: public Parent { }; class Child2 : public Parent { }; Я хотел бы вторую иерархию классов с классом Cousin наверху иерархии и подклассами, называемыми Cousin1...
70 просмотров

Boost-python чистый виртуальный обнаружение отсутствующей реализации
У меня есть класс С++ с чистым виртуальным методом, открытым для python с использованием boost-python. Я вызываю виртуальную функцию из C++ и предполагаю, что виртуальная функция реализована в python. Все работает, если функция реализована, но если...
132 просмотров
schedule 04.03.2024