一点小思考
新手在学完了继承与派生后,突发奇想,那有没有“变异”呢?
举个例子
class A
{
public:
void a(){...};
void b(){...};
void c(){...};
private:
};
class B:public A
{
void d(){...};
}
在派生类中,我想要删掉父类中继承来的a函数,这应该如何做到呢?
[解决办法]
我觉得基类就不应该定义这个函数,或者基类应该被拆分
[解决办法]
派生类必须继承父类的所有特性,要不然怎么叫派生类。。。打个比方,一种生物如果是“动物”的派生类,就必须满足所有“动物”的特性。。
[解决办法]
访问权限控制:
- C/C++ code
class A{public: void fun2(); void fun();};class B:public A{private: using A::fun;};int main(){ B b; b.fun();return 0;}
[解决办法]
如果不想把继承来的函数给外面访问,可以把这个函数放在私有部分,这样类外面调用这个函数就出错。
或者更狠一点,直接私有继承,统统不给用,然后把要给外面用的重新在public里面用using 声明一下。