Свързани въпроси 'virtual-functions'
Идиом на виртуален конструктор - добродетелен или пълна абсолютна заблуда
Едно от златните правила в C++ е, че животът на един екземпляр започва, когато неговият конструктор завърши успешно и завършва, когато започне неговият деструктор.
От това правило заключаваме, че НЕ е добра идея да се извикват виртуални методи в...
782 изгледи
schedule
08.12.2022
Използване на силата на виртуалните функции
Разгледайте следния примерен код:
class Base {
public:
void f();
virtual void vf();
};
class Derived : public Base {
public:
void f();
void vf();
};
#include <iostream>
using namespace std;
void Base::f() {
cout...
203 изгледи
schedule
15.11.2023
Не може да се замени to_String поради цяло число в C++
Имам клас Служител, който има няколко подкласа. Искам да отменя функцията to_String в моя суперклас и всички подкласове, но не мога да я накарам да работи поради цяло число в суперкласа:
class Employee{
public:
Employee(...){
......
169 изгледи
schedule
11.12.2022
c++ виртуална функция срещу указател на членска функция (сравнение на производителността)
Извикванията на виртуални функции могат да бъдат бавни поради виртуалните извиквания, изискващи допълнително индексирано уважение към v-таблицата, което може да доведе до пропуск на кеш данни, както и пропуск на кеш на инструкции... Не е добре за...
2852 изгледи
schedule
06.12.2023
Как да си обясня това поведение с претоварени и заменени методи?
Може ли някой да бъде толкова мил и да ми обясни защо този код показва Derived.DoWork(double) . Мога да намеря някои обяснения за това поведение, но искам някой да ми изясни това.
using System;
public class Base
{
public virtual void...
260 изгледи
schedule
13.10.2022
C++ наследява шаблонен клас
Имам една странна молба, надявам се, че не е твърде пресилена и може да бъде изпълнена.
Имам шаблонен клас
template<class T> class Packable
{
public:
// Packs a <class T> into a Packet (Packet << T)...
140 изгледи
schedule
26.11.2023
Защо се изисква виртуална таблица само в случай на виртуални функции?
От http://www.learncpp.com/cpp-tutorial/125-the-virtual-table/ , код като напр
class Base
{
public:
virtual void function1() {};
virtual void function2() {};
};
class D1: public Base
{
public:
virtual void function1() {};
};
class...
481 изгледи
schedule
18.12.2023
Как се реализират чисти виртуални методи в Python?
Все още не съм открил как. Междувременно в момента използвам така:
@abc.abstractmethod
def pure_virtual_method(self, a, b):
"""
Method description.
:param a: Whatever...
:param b: Whatever...
:returns: Whatever......
210 изгледи
schedule
13.12.2022
Нуждаете се от пояснение относно виртуалните функции и частните членове на класа
В C++, ако публичната виртуална функция на базовия клас има препратка към частно членско поле и производният клас не отменя този метод, тогава тази препратка ще сочи ли частен член на производния клас
113 изгледи
schedule
16.01.2024
C++ Извикване на виртуален метод в Constructor
Използвам родителски клас, който има някои виртуални методи. Когато извикам виртуалния метод в конструктора, той дава LNK2019 и LNK1120 грешки със съобщения " error LNK2019: unresolved external symbol "protected: virtual int ... referenced in...
1075 изгледи
schedule
19.03.2024