【发布时间】:2014-01-04 00:24:27
【问题描述】:
基本问题归结为:
// 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++ 机制的问题,以及为什么允许或不允许做某事
【问题讨论】:
-
这能回答你的问题吗? Why is inherited member not allowed?
标签: c++ class inheritance