工厂模式里,重写虚函数返回类型有差异,该怎么处理
工厂模式里,重写虚函数返回类型有差异
在网上看见这个工厂模式,但自己实践时按照他的方法出现了错误,请问如何改正
01.class SingleCore
02.{
03.public:
04. virtual void Show() = 0;
05.};
06.//单核A
07.class SingleCoreA: public SingleCore
08.{
09.public:
10. void Show() { cout<<"SingleCore A"<<endl; }
11.};
12.//单核B
13.class SingleCoreB: public SingleCore
14.{
15.public:
16. void Show() { cout<<"SingleCore B"<<endl; }
17.};
18.class Factory
19.{
20.public:
21. virtual SingleCore* CreateSingleCore() = 0;
22.};
23.//生产A核的工厂
24.class FactoryA: public Factory
25.{
26.public:
27. SingleCoreA* CreateSingleCore() { return new SingleCoreA; }
28.};
29.//生产B核的工厂
30.class FactoryB: public Factory
31.{
32.public:
33. SingleCoreB* CreateSingleCore() { return new SingleCoreB; }
34.};
------解决方案--------------------
3. 具体是什么错误?
------解决方案--------------------
在网上看见这个工厂模式,但自己实践时按照他的方法出现了错误,请问如何改正
01.class SingleCore
02.{
03.public:
04. virtual void Show() = 0;
05.};
06.//单核A
07.class SingleCoreA: public SingleCore
08.{
09.public:
10. void Show() { cout<<"SingleCore A"<<endl; }
11.};
12.//单核B
13.class SingleCoreB: public SingleCore
14.{
15.public:
16. void Show() { cout<<"SingleCore B"<<endl; }
17.};
18.class Factory
19.{
20.public:
21. virtual SingleCore* CreateSingleCore() = 0;
22.};
23.//生产A核的工厂
24.class FactoryA: public Factory
25.{
26.public:
27. SingleCoreA* CreateSingleCore() { return new SingleCoreA; }
28.};
29.//生产B核的工厂
30.class FactoryB: public Factory
31.{
32.public:
33. SingleCoreB* CreateSingleCore() { return new SingleCoreB; }
34.};
------解决方案--------------------
3. 具体是什么错误?
------解决方案--------------------
- C/C++ code
//生产A核的工厂 class FactoryA: public Factory { public: SingleCore* CreateSingleCore() { return new SingleCoreA; } }; //生产B核的工厂 class FactoryB: public Factory { public: SingleCore* CreateSingleCore() { return new SingleCoreB; } };//这样?
------解决方案--------------------
不同的返回值代表不同的函数。
再说,此例中也没有必要更改返回值