Based on this, the following code should print "Running derived method", but when I run it, it prints "Running base method":
#include <iostream>
using namespace std;
class Base
{
public:
Base() {}
virtual void run() {cout << "Running base method" << endl;}
virtual ~Base() {}
};
class Derived : public Base
{
public:
Derived() {}
void run() {cout << "Running derived method" << endl;}
~Derived() {}
};
int main()
{
Base o = Derived();
o.run();
return 0;
}