中的派生方法未在基类中调用
Derived method in not called in base class
我不知道如何放置正确的标题。对不起,我的问题很难解决。
我有一节课
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)时,返回值仍然是2,我希望它返回101。
请帮我做这件事,但不要更改mockCal::expression中的任何内容。非常感谢。
如果要在mockcal
类中重写方法int sub(int a, int b)
,则需要在基类(代码中的myCal
类)中使其成为虚拟方法
class myCal
{
public:
//...
virtual int sub(int a, int b);
//..
};
相关文章:
- MFC 中的窗口消息管理:添加基类调用是否是强制性的?
- 从基类调用函数的多态性
- 为什么派生类的实例从基类调用方法?
- 从基类调用重写的方法
- C++ 基类调用但返回派生类
- 从基类调用继承类的方法.C++
- 哪个基类调用派生重写的方法?
- C++ 基类调用已删除或无法访问的函数
- 从具有泛型返回类型的 crtp 基类调用派生类中的函数
- C :基类调用自己的虚拟函数 - 一个反图案
- 使用基类调用派生类
- 使用基类调用放置新
- 继承和重写 - 从基类调用重写子方法
- 继承:从基类调用派生的类功能
- 从基类调用派生的类构造函数
- C 从基类调用派生类功能
- 从基类调用重写的方法
- 抽象基类调用父级的纯虚函数
- 从基类C++调用虚拟方法
- 如何从非虚拟的基类调用析构函数