Как сделать так, чтобы метод child вызывался: виртуальное ключевое слово не работает?

Вот мой код,

#include
#include

using namespace std;

class TestClass
{
  public:
    virtual void test(string st1, string st2);

};

class ExtendedTest: public TestClass
{
  public:
    virtual void test(string st1, string st2);
};

void TestClass::test(string st1, string st2="st2")
{
     cout < st1 < endl;
     cout < st2 < endl;
}

void ExtendedTest::test(string st1, string st2="st2")
{
     cout < "Extended: " < st1 < endl;
     cout < "Extended: " < st2 < endl;
}

void pass(TestClass t)
{
    t.test("abc","def");
}


int main()
{
   ExtendedTest et;
   pass(et);
   return 0;
}

Ответы на вопрос(3)

Ваш ответ на вопрос