首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-16 
工厂模式里,重写虚函数返回类型有差异在网上看见这个工厂模式,但自己实践时按照他的方法出现了错误,请问如

工厂模式里,重写虚函数返回类型有差异
在网上看见这个工厂模式,但自己实践时按照他的方法出现了错误,请问如何改正
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; }   };//这样?
[解决办法]
不同的返回值代表不同的函数。
再说,此例中也没有必要更改返回值

热点排行