Вопросы по теме 'virtual-functions'
Когда не следует использовать виртуальные деструкторы?
Есть ли веская причина не объявлять виртуальный деструктор для класса? В каких случаях лучше не писать?
29846 просмотров
schedule
15.03.2024
Улучшение Comparable ‹T› сравнения с производительностью
Я профилировал свой код и обнаружил, что мой класс, реализующий Comparable<T> , тратит в 8 раз больше времени процессора в
compareTo(Object)
чем в
compareTo(T)
Я предполагаю, что замедление происходит из-за поиска этого метода...
982 просмотров
schedule
17.02.2022
Какова стоимость производительности виртуального метода в классе C ++?
Наличие хотя бы одного виртуального метода в классе C ++ (или любом из его родительских классов) означает, что класс будет иметь виртуальную таблицу, и каждый экземпляр будет иметь виртуальный указатель.
Так что стоимость памяти вполне понятна....
35125 просмотров
schedule
18.05.2022
встроенная виртуальная функция
Насколько я понимаю, в C ++ виртуальная функция может быть встроена, но, как правило, указание на встроенную функцию игнорируется. Кажется, что встроенные виртуальные функции не имеют особого смысла.
Это правильно?
Может ли кто-нибудь привести...
15655 просмотров
schedule
11.04.2022
C++ против C++/CLI: Константная квалификация параметров виртуальной функции
[Все нижеперечисленное было протестировано с использованием Visual Studio 2008 SP1]
В C++ константная квалификация типов параметров не влияет на тип функции (8.3.5/3: любой квалификатор cv, изменяющий тип параметра, удаляется)
Так, например, в...
3407 просмотров
schedule
23.05.2024
Почему g++ хранит имена классов в скомпилированном двоичном файле?
Я заметил, что если я запускаю strings в своей программе, которая была скомпилирована g++ , вывод содержит имена различных классов, которые он использует.
Программа была скомпилирована с -O3 и без -g или -p , и имена классов все еще...
1257 просмотров
schedule
03.08.2022
Множественное наследование от одного и того же прародителя - объединить реализации?
для определенного проекта я объявил интерфейс (класс только с чисто виртуальными функциями) и хочу предложить пользователям некоторые реализации этого интерфейса.
Я хочу, чтобы у пользователей была большая гибкость, поэтому я предлагаю частичные...
754 просмотров
schedule
23.10.2023
переопределить виртуальный метод c ++
У меня есть шаблон класса, в котором некоторые методы определены как виртуальные, чтобы дать пользователю моего класса возможность реализовать для них реализацию в своем производном классе. Обратите внимание, что в моем классе-шаблоне есть несколько...
52158 просмотров
schedule
05.03.2022
список полиморфных объектов
У меня есть конкретный сценарий ниже. Приведенный ниже код должен печатать функцию «say ()» класса B и C и печатать «B говорит ...» и «C говорит ...», но это не так. Любые идеи. Я изучаю полиморфизм, поэтому также прокомментировал несколько...
7197 просмотров
schedule
27.04.2022
Когда следует ограничивать доступность виртуальной функции в производном классе?
Рассмотрим следующий код:
class Base
{
public:
virtual void Foo() {}
};
class Derived : public Base
{
private:
void Foo() {}
};
void func()
{
Base* a = new Derived;
a->Foo(); //fine, calls Derived::Foo()
Derived* b = new...
287 просмотров
schedule
28.05.2024
boost python: как вызвать виртуальную функцию C++
У меня есть python, встроенный в приложение C++. C++ вызывает python и передает его в качестве аргумента объекту C++. этот объект имеет некоторые виртуальные функции и может быть базовым классом для некоторого производного класса. Как заставить...
1267 просмотров
schedule
28.11.2023
Влияние виртуального ключевого слова с функцией в *производном* классе на производительность
Derived1 и Derived2 наследуются от Base, в то время как ни один класс не наследуется от Derived1 и Derived2. В классах, объявленных ниже, смогу ли я уменьшить один уровень косвенности, не используя ключевое слово «виртуальный» в объявлении...
191 просмотров
schedule
12.06.2023
Правильное поведение с помощью виртуальных методов
Предположим, у меня есть чисто виртуальный метод в интерфейсе base , который возвращает мне список something :
class base
{
public:
virtual std::list<something> get() = 0;
};
Предположим, у меня есть два класса, которые...
149 просмотров
schedule
06.05.2024
Как использовать std :: bind () для вызова версии виртуальной функции базового класса?
Я пытаюсь использовать std :: bind () для создания функции, которая будет вызывать версию виртуальной функции базового класса, а не вызывать версию производного класса.
struct Base
{
virtual void foo() { cout << "Base\n"; }
};
struct...
6341 просмотров
schedule
05.05.2022
Вызов члена производного класса из виртуальной функции
Я немного запутался в отношении виртуальных функций.
Предположим, у вас есть базовый класс с виртуальной функцией foo (), и эта функция затем переопределена в производном классе
class Baseclass
{
public:
virtual void foo()...
149 просмотров
schedule
28.04.2022
С++ избегает динамической отправки в производных классах с использованием ключевого слова
Буду ли я использовать динамическую диспетчеризацию для вызова виртуальных функций в следующем примере?
struct Base{
virtual double fn(){return 3.2;}
};
struct Deri1 : public Base{
using Base::fn;
}
struct Deri2 : public Base{
virtual...
859 просмотров
schedule
02.03.2023
Может ли быть хорошей идеей помещать виртуальные методы в копируемый тип?
Видели несколько связанных вопросов, но не этот ...
Я рассматривал классы как относящиеся к нескольким основным категориям, скажем, для простоты, этим четырем:
Классы значений , которые содержат некоторые данные и набор операций. Их можно...
651 просмотров
schedule
14.02.2022
Чисто виртуальный метод называется кросс-компиляция
Я пишу библиотеку программирования на основе событий для использования на BeagleBone Black и обнаружил странную ошибку.
Когда я компилирую точно такой же код с точно такими же флагами, я получаю следующие ошибки на процессоре на базе ARM, но не...
2258 просмотров
schedule
27.08.2023
Какую информацию хранит RTTI для полиморфного объекта?
Прежде чем я начну, я знаю, что полиморфный объект имеет виртуальную таблицу для выбора правильного метода во время выполнения. Однако есть ли дополнительная информация, которую содержит каждый полиморфный объект (за исключением виртуальной таблицы)?...
305 просмотров
schedule
04.04.2023
Предупреждение: перегруженная виртуальная функция Base :: process только частично переопределяется в производном классе
Я получаю предупреждение ниже. часть моего кода:
class Base {
public:
virtual void process(int x) {;};
virtual void process(int a,float b) {;};
protected:
int pd;
float pb;
};
class derived: public Base{
public:
void...
5816 просмотров
schedule
07.07.2023