<分区>
基本问题归结为:
// header
class Calculator
{
public:
virtual int calculate(int a, int b);
};
class Adder : public Calculator
{
};
// class file
int Adder::calculate(int a, int b) {return a + b;} // gives error
为什么不允许我这样做?
我会假设因为 Adder
继承了 Calculator
的成员,我可以定义它们的主体,就好像它们是它自己的主体一样,但显然那不是可能...
我已经看到其他答案,其中他们只需在子类中再次编写成员定义,但对我来说,这似乎浪费了很多代码行一遍又一遍地重复相同的文本,所以问题是……
为什么不在子类的定义中重写它就不能这样做?
另外,请注意,这不是关于如何修复错误的问题,而是关于 C++ 机制的问题,以及为什么允许或不允许做某事的问题