/*Abstract Factory
*Nightiger
*/
#include<string>
#include<iostream>
using namespace std;
class A{
string name;
public:
A(string _name):name(_name){}
A(){name="A";}
string ShowName(){return name;}
};
class B{
string name;
public:
B(string _name):name(_name){}
B(){name="B";}
string ShowName(){return name;}
};
class Factory{
public:
virtual A* MakeA(){return new A;}
virtual B* MakeB(){return new B;}
virtual A* MakeA(string a_name){return new A(a_name);}
virtual B* MakeB(string b_name){return new B(b_name);}
};
void main()
{
Envir e;
e.ShowMember();
}
*Nightiger
*/
#include<string>
#include<iostream>
using namespace std;
class A{
string name;
public:
A(string _name):name(_name){}
A(){name="A";}
string ShowName(){return name;}
};
class B{
string name;
public:
B(string _name):name(_name){}
B(){name="B";}
string ShowName(){return name;}
};
class Factory{
public:
virtual A* MakeA(){return new A;}
virtual B* MakeB(){return new B;}
virtual A* MakeA(string a_name){return new A(a_name);}
virtual B* MakeB(string b_name){return new B(b_name);}
};
void main()
{
Envir e;
e.ShowMember();
}