#include <iostream>
#include <string>
using namespace std;
class TextBuilder
{
public:
virtual void Draw(string Text) = 0;
};
class :public TextBuilder
{
public:
void Draw(string Text)
{
cout << "Text1: " << Text << endl;
}
} Text1;
class :public TextBuilder
{
public:
void Draw(string Text)
{
cout << "Text2: " << Text << endl;
}
} Text2;
void ShowString (TextBuilder &Method, string Text)
{
Method.Draw(Text);
}
int main()
{
ShowString(Text1, "Adam");
ShowString(Text2, "Adam");
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKY2xhc3MgVGV4dEJ1aWxkZXIKewpwdWJsaWM6CiAgICB2aXJ0dWFsIHZvaWQgRHJhdyhzdHJpbmcgVGV4dCkgPSAwOwp9OwogCmNsYXNzIDpwdWJsaWMgVGV4dEJ1aWxkZXIKewpwdWJsaWM6CiAgICB2b2lkIERyYXcoc3RyaW5nIFRleHQpCiAgICB7CiAgICAgICAgY291dCA8PCAiVGV4dDE6ICIgPDwgVGV4dCA8PCBlbmRsOwogICAgfQp9IFRleHQxOwogCmNsYXNzIDpwdWJsaWMgVGV4dEJ1aWxkZXIKewpwdWJsaWM6CiAgICB2b2lkIERyYXcoc3RyaW5nIFRleHQpCiAgICB7CiAgICAgICAgY291dCA8PCAiVGV4dDI6ICIgPDwgVGV4dCA8PCBlbmRsOwogICAgfQp9IFRleHQyOwogCnZvaWQgU2hvd1N0cmluZyAoVGV4dEJ1aWxkZXIgJk1ldGhvZCwgc3RyaW5nIFRleHQpCnsKICAgIE1ldGhvZC5EcmF3KFRleHQpOwp9CiAKaW50IG1haW4oKQp7CiAgICBTaG93U3RyaW5nKFRleHQxLCAiQWRhbSIpOwogICAgU2hvd1N0cmluZyhUZXh0MiwgIkFkYW0iKTsKICAgIHJldHVybiAwOwp9IA==