C++在一个子类中用父类对象调用另一个子类中的函数(函数在父类是虚函数,子类已重载)
class Operation {
public:
virtual double GetResult() {
double result =0;
return result;
}
};
class OperationAdd :public Operation {
public:
OperationAdd() {}
virtual double GetResuit() {
double result = 0;
result = number_A + number_B;
return result;
}
};
class OperationFactory: public Operation{
public:
double createOperate(char operate,double A,double B) {
double result=0;
Operation* oper = new OperationAdd;
oper->number_A = A;
oper->number_B = B;
result = oper->GetResult();
};
仍然运行父类中的函数
运行子类中的函数
因为你子类函数名叫GetResuit,而基类叫GetResult
根本不是同一个函数啊!!!
函数名写错啦!!!
你本意是想重载,结果名字不一样,没有达到重载的效果
函数名:你看我俩长得像吗?