一
#include <windows.h>
class Sample
{
public:
Sample()
{
}
virtual void flag() const
{
MessageBox(0,"Sample","111",0);
}
};
class SampleA:public Sample
{
public:
SampleA()
{
}
void flag() const
{
MessageBox(0,"SampleA","111",0);
}
};
class SampleB:public Sample
{
public:
SampleB()
{
}
void flag() const
{
MessageBox(0,"SampleB","111",0);
}
};
class Factory
{
public:
Sample* Creator(int which)
{
Sample* s;
switch (which)
{
case 1:
s=&(SampleA());
break;
case 2:
s=&(SampleB());
break;
}
return s;
}
};
如此使用
int main()
{
Factory f=Factory();
Sample* s=f.Creator(1);
s->flag()
;}

