各位大侠,麻烦看下。这算个什么设计模式
[code=C/C++][/code]
class A
{
public:
virtual void print()
{
cout<<"A"<<endl;
}
};
class B : public A
{
public:
virtual void print()
{
cout<<"B"<<endl;
}
};
class C : public A
{
public:
virtual void print()
{
cout<<"C"<<endl;
}
};
class Factory
{
public:
void Create(A& c)
{
c.print();
}
};
void main()
{
A a;
B b;
C c;
Factory f;
f.create(a);
f.create(b);
f.create(c);
}
[解决办法]
啥也不是
[解决办法]
工厂模式
[解决办法]
就是普通的基础和多态
[解决办法]
看错了 没啥模式
[解决办法]
啥也不是
[解决办法]
垃圾模式
[解决办法]
// use STL#include <string>class A{public: virtual void print() { cout<<"A"<<endl; }};class B : public A{public: virtual void print() { cout<<"B"<<endl; }};class C : public A{public: virtual void print() { cout<<"C"<<endl; }};class Factory{public: A *GetClass(string type) { if ("A" == type) return new A; if ("B" == type) return new B; if ("C" == type) return new C; return NULL; }};void main(){ Factory f; f.create("A")->print(); f.create("B")->print(); f.create("C")->print(); // free mem? the only for show}
[解决办法]