Как использовать конечную перегруженную функцию из производного класса?
Компилятор говорит: «Нет подходящей функции для вызова« B :: foo() ».Перегруженная конечная функция в производном классе
class A
{
public:
virtual void foo() final
{
std::cout << "foo";
}
virtual void foo(int b) = 0;
};
class B : public A
{
public:
void foo(int b) override
{
std::cout << b;
}
};
//Somewhere
B* b = new B;
b->foo(); //Error
Но он работает без перегрузки.
class A
{
public:
virtual void foo() final
{
std::cout << "foo";
}
};
class B : public A
{
};
//Somewhere
B* b = new B;
b->foo(); //Works!