工厂模式里,重写虚函数返回类型有差异,该怎么处理

工厂模式里,重写虚函数返回类型有差异
在网上看见这个工厂模式,但自己实践时按照他的方法出现了错误,请问如何改正
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; }   
};//这样?

------解决方案--------------------
不同的返回值代表不同的函数。
再说,此例中也没有必要更改返回值