我不知道如何把一个正确的标题。对不起,我的问题对我来说很难。派生的方法在基类不叫
我有一个类myCal.h:
class myCal
{
public:
myCal();
int add(int a, int b);
int sub(int a, int b);
int expresstion(int a, int b, int c);
};
和myCal.cpp:
myCal::myCal()
{
}
int myCal::add(int a, int b)
{
return a+b;
}
int myCal::sub(int a, int b)
{
return a-b;
}
int myCal::expresstion(int a, int b, int c)
{
return add(sub(a, b), c);
}
在main.cpp中
,我有类mockcal这样的:
class mockcal : public myCal
{
public:
int sub(int a, int b)
{
return 100;
}
int expresstion(int a, int b, int c)
{
return myCal::expresstion(a,b,c);
}
};
如果我运行myCal.expresstion(3,2,1),返回值是2,没关系, ,但是当我运行mockCal.expresstion(3,2,1)时,ret urn值仍然是2,我希望它返回101.
请帮我做到这一点,但不要改变mockCal :: expresstion中的任何内容。 非常感谢。
如果你写的:INT expresstion(INT一个, int b,int c) { return myCal :: expresstion(a,b,c); }你将永远有2 – 2014-09-30 08:28:47
所以我现在需要做的,在myCal :: expresstion中调用myCal :: add和myCal :: sub,我希望myCal :: sub总是返回100,请帮助 – 2014-09-30 08:33:17
写在表达式中mockCal类如果关于你的实例对象,那么如果实例是myCal(高级),你将调用myCal :: expresstion,否则你会调用mockCal override – 2014-09-30 08:46:38