永发信息网

c++ 泛型 模板继承问题

答案:4  悬赏:60  手机版
解决时间 2021-01-31 07:41
c++ 泛型 模板继承问题
最佳答案
。。。。。。。
VS2012,给你重新写一个。

#include
#include
#include

enum class Type {
ADD,
SUB
};

template
class Operator {
public:
void setX(const Op & x) {
_x = x;
}
void setY(const Op & y) {
_y = y;
}
virtual Op result() = 0;
virtual ~Operator() {}
public:
Op _x;
Op _y;
};

template
class Add : public Operator {
typedef Operator Base;
public:
Op result() override {
return Base::_x + Base::_y;
}
};

template
class Sub : public Operator {
typedef Operator Base;
public:
Op result() override {
return Base::_x - Base::_y;
}
};

class Factory {
public:
template
static Operator *create(Type type) {
switch(type) {
case Type::ADD:
return new Add;
case Type::SUB:
return new Sub;
default:
throw std::invalid_argument("Factory::create");
}
}
};

int main() {
Operator * op = Factory::create(Type::ADD);
op->setX(1);
op->setY(2);
std::cout << "add = " << op->result() << std::endl;
Operator *op2 = Factory::create(Type::SUB);
op2->setX(2);
op2->setY(1);
std::cout << "sub = " << op2->result() << std::endl;
system("pause");
}
全部回答
std::auto_ptr CreateOperation(OPERTYPE aType) //差这个">" 吧
{
Operation *ptr = NULL;
无良啊,天杀的啊,无语啊........................

两个笔误,template
class OperationFacory
{
public:
std::auto_ptr> CreateOperation(OPERTYPE aType)//少了一个右尖括号
{
Operation *ptr = NULL;//Operation是泛型的,得带上
switch(aType)
{
case OPER_ADD:
ptr = new OperationAdd;
break;
case OPER_SUB:
ptr = new OperationSub;
break;
default:
ptr = NULL;
}
return std::auto_ptr>(ptr);
}
};
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
第的拼音是什么
【corridors】corridors
三星w2014怎么分屏,在边看电影是,边聊天
85乘以136 85乘以64=85乘以(136 64)运用了什
我想要个Qq网名,意思是我要向着目标奋斗,一
永耀汽车(江苏分公司)地址有知道的么?有点事
一切联系方式都没了,怎么样才能找到以前的高
武侯吟的意思是什么啊?知道的请说下!
皇宫酒吧怎么去啊,我要去那办事
华东机动车市场地址好找么,我有些事要过去
为何欧洲国王不能娶多个妻子?
硬盘版下载好以后(迅雷),是压缩包十多个一
微帮怎么赚钱吗
写一篇写小狗的英语作文,不少于60词,并说明
原色酒吧地址在什么地方,想过去办事
推荐资讯
癯辱的意思是什么啊?知道的请说下!
石湖森林公安派出所地址在什么地方,想过去办
东营市,外地人换身份证需要户口本吗?我的身
碧波庭养生馆地址好找么,我有些事要过去
韵达快递(正兴街与文华路交叉口旁)地址好找么
沈阳崇山路与鸭绿江路是什么区或县?
电瓶车被扣了,不想要了,可以吗?
单选:心理咨询师说你刚讲过……这似乎有些矛
明辉便利店地址在哪,我要去那里办事
济南长途汽车站总站南区.放的轻音乐.音乐歌曲
舞状元街舞俱乐部怎么去啊,我要去那办事
欠银行信用卡9000元,3年后本息要还多少?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?