关于继承的一个问题
(liupq 2009.12.5)
下面程序中的f2()函数为什么是错误的:
#include <cstdlib>
#include <iostream>
using namespace std;
class abc{
public:
protected:
};
class def : public abc{
public:
private:
};
int main(int argc, char *argv[])
{
}
为什么f1,f3函数都是对的,而f2是错的?因为f2中的a.n()中的a是父类abc的对象,而不是def的对象,a.n()是abc的成员,而不是def的成员。被继承的受保护成员在子类中是可以的,是指被继承到子类中的那个成员。