读书人

一点小思考解决方案

发布时间: 2012-05-09 12:13:59 作者: rapoo

一点小思考
新手在学完了继承与派生后,突发奇想,那有没有“变异”呢?
举个例子
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 声明一下。

读书人网 >C++

热点推荐