, , , , , , release/ . , , (, ), .
( " , Derived " ) . , .
:
class Base {
public:
int data_;
virtual void bar() { std::cout << "Base\n"; }
};
class Derived : public Base {
public:
void fun() { ::std::cout << "Hi, I'm " << this << ::std::endl; }
virtual void bar() { std::cout << "Derived\n"; }
};
int main() {
Base base;
Derived *derived = static_cast<Derived*>(&base);
derived->fun();
derived->bar();
}
vtable Base::bar(), , bar() . , Derived Derived, fun, vtable Derived::bar(). , .
, Undefined : , UB, .