Вопросы по теме 'virtual-functions'
Откуда происходят сбои при вызове чисто виртуальных функций?
Я иногда замечаю программы, которые вылетают на моем компьютере с ошибкой: «вызов чистой виртуальной функции».
Как эти программы даже компилируются, если объект не может быть создан из абстрактного класса?
103102 просмотров
schedule
04.09.2023
Есть ли причина не делать функцию-член виртуальной?
Есть ли реальная причина не делать виртуальную функцию-член в C++? Конечно, всегда есть аргумент в пользу производительности, но в большинстве ситуаций он кажется неприемлемым, поскольку накладные расходы виртуальных функций довольно низки.
С...
5005 просмотров
schedule
06.05.2023
В чем разница между абстрактным методом и виртуальным методом?
В чем разница между абстрактным методом и виртуальным методом? В каких случаях рекомендуется использовать абстрактные или виртуальные методы? Какой из них лучший?
623524 просмотров
schedule
13.04.2022
Вызов виртуальной функции из конструктора
Возможно, я ошибаюсь, но это, кажется, очень простой вопрос. Внезапно моя цепочка наследования перестала работать. Написание небольшого базового тестового приложения доказало, что ошибался я (поэтому я не могу винить компилятор).
У меня есть...
971 просмотров
schedule
01.03.2022
Множественное наследование + беспорядок виртуальных функций
У меня есть сценарий множественного наследования с бриллиантами, например:
A
/ \
B C
\ /
D
Общий родитель, A, определяет виртуальную функцию fn (). Возможно ли, чтобы B и C определяли fn() ? Если да, то следующий...
29290 просмотров
schedule
15.07.2022
Действительно ли встроенные виртуальные функции бессмысленны?
Я получил этот вопрос, когда получил комментарий обзора кода, в котором говорилось, что виртуальные функции не обязательно должны быть встроенными.
Я думал, что встроенные виртуальные функции могут пригодиться в сценариях, где функции вызываются...
83264 просмотров
schedule
17.08.2022
Почему все методы Java неявно переопределяются?
В C ++ я должен явно указать ключевое слово virtual, чтобы сделать функцию-член `` переопределяемой '', так как это связано с накладными расходами на создание виртуальных таблиц и vpointers, когда функция-член становится переопределяемой (так что...
3140 просмотров
schedule
16.02.2023
Каково использование чистых виртуальных функций в C++?
Я сейчас изучаю C++ в классе, и я не совсем понимаю чистые виртуальные функции. Я понимаю, что позже они будут описаны в производном классе, но зачем вам объявлять его равным 0, если вы просто собираетесь определить его в производном классе?
39229 просмотров
schedule
02.08.2022
Правильная реализация виртуальных функций в PHP?
на моем рабочем месте (только php) у нас есть базовый класс для абстракции базы данных. Если вы хотите добавить новую таблицу базы данных на базовый уровень, вы должны создать подкласс этого базового класса и переопределить некоторые методы, чтобы...
28076 просмотров
schedule
01.06.2023
С++ вызывает виртуальный метод в дочернем классе
у меня есть следующие классы:
class A {
protected:
A *inner;
public:
....
virtual void doSomething() = 0;
....
}
class B: public A {
...
void doSomething() {
if(inner != NULL)
inner->doSomething();...
944 просмотров
schedule
06.06.2022
Виртуальные функции с двумя операндами, которые могут принимать различные типы
Позвольте мне начать с конкретного примера. В С++ у меня есть иерархия классов под абстрактным базовым классом CollisionVolume . Любой объем коллизий должен иметь возможность detectCollision с любым другим объемом. Этот код коллизии...
217 просмотров
schedule
21.10.2022
Бывают ли случаи, когда класс объявляет виртуальные методы и компилятору не нужно использовать vptr?
Мне было интересно, существует ли возможная оптимизация, при которой компилятору не нужно назначать vptr созданному объекту, даже если тип объекта является классом с виртуальными методами.
Например, рассмотрим:
#include <iostream>
struct...
151 просмотров
schedule
01.11.2022
Как переопределить виртуальную функцию в хорошем стиле? [С++]
ребята, я знаю, что этот вопрос очень простой, но я встречал в нескольких публикациях (веб-сайтах, книгах) другой стиль переопределения виртуальной функции. Я имею в виду: если у меня есть базовый класс:
class Base
{
public:
virtual void f() =...
1503 просмотров
schedule
05.01.2023
Разрешение перегрузки и виртуальные методы
Рассмотрим следующий код (он немного длинный, но, надеюсь, вы сможете понять):
class A
{
}
class B : A
{
}
class C
{
public virtual void Foo(B b)
{
Console.WriteLine("base.Foo(B)");
}
}
class D: C
{
public override void...
2456 просмотров
schedule
08.04.2022
C ++: указатель на мономорфную версию виртуальной функции-члена?
В C ++ можно получить указатель на (нестатическую) функцию-член класса, а затем вызвать его для объекта. Если функция была виртуальной, вызов отправляется динамически в зависимости от динамического типа объекта. Также возможно (без использования...
1643 просмотров
schedule
18.12.2022
Виртуальные функции: перебор вектора «Базовый класс», заполненного объектами подкласса
Краткое описание: Я перебираю вектор, вызывая виртуальную функцию для каждого объекта в векторе, чтобы выполнить последовательность действий. Вектор относится к базовому классу, как и итератор. Все объекты являются дочерними. Когда вызывается...
5029 просмотров
schedule
28.05.2023
в С++ при создании подклассов, почему иногда нужно добавлять виртуальное ключевое слово в переопределенную функцию?
Почему я иногда вижу в примерах C++, когда речь идет о подклассах/наследовании, базовый класс имеет виртуальное ключевое слово, а иногда переопределенная функция также имеет виртуальное ключевое слово, почему иногда необходимо добавлять в подкласс...
9437 просмотров
schedule
16.09.2022
Виртуальные функции против обратных вызовов
Рассмотрим сценарий, в котором есть два класса, т. е. базовый и производный. Если базовый класс хочет вызвать функцию производного класса, он может сделать это, либо создав виртуальную функцию и определив эту виртуальную функцию в производном...
2803 просмотров
schedule
10.06.2022
Изменение сигнатур абстрактных методов в унаследованных классах
Представьте, что у меня есть класс Engine в качестве абстрактного базового класса. У меня также есть классы ElectrictEngine и FuelEngine, производные от него.
Я хочу создать метод для заправки двигателя. Должен ли я сделать это как абстрактный...
2184 просмотров
schedule
14.06.2022
Чисто виртуальные методы с разными типами данных
Я создаю базовый класс для своих классов-контейнеров, чтобы я мог поддерживать согласованный интерфейс. В настоящее время это выглядит примерно так:
template <typename Datatype>
class BaseClass
{
public:
virtual Datatype Foo() = 0;...
724 просмотров
schedule
13.12.2023