struct Foo
{
Foo() {}
virtual ~Foo() {}
virtual int test() const = 0;
};
struct Bar : Foo
Bar() {}
~Bar() override {}
int test() const override { return 0; }
int test(Foo const& foo)
return foo.test();
}
int main()
Bar const bar;
return test(bar);