读书人

工厂模式里重写虚函数返回类型有差异

发布时间: 2012-02-16 21:30:36 作者: rapoo

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

读书人网 >C++

热点推荐