工作中涉及到一些类与继承类之间的关系,常常会被搞晕。现在搞个总结。
以下是代码 :
输出结果:
pubshow
pubBshow
proBBBshow
proshow
prishow
in repeat_prishow
pubshow
classA get paraA :30
说明:
一、a.prishow()和a.proshow()编译不过,说明在类的外部,只有public部分可以被使用。
二、b.pubBshow()的输出为:
pubBshow //classB的公共部分被访问
proBBBshow //如果想使用一个类的protected部分,可以在类的public部分实现中,调用类的protected部分
proshow //继承类可以在成员函数的实现中直接使用基类的方法
prishow //
in repeat_prishow//以上两行说明通过修改基类也可以实现:在继承类中访问基类的私有方法
pubshow //类可以直接调用通过public继承来的其它类的public方法
三、a.getparaA(b.getparaB())输出表明:通过修改继承类和基类的方法,可以让基类实现访问继承类的成员。
以上仅是一个类之间关系的测试,一些方法是违反C++的代码精神的。
增加:
有一种更好的办法,可以使两个类彼此之间的方法相互使用。
class classB;
class classA:public anotherclassC
{
private:
classB b;
};
class classA;
class classB:public anotherclassD
{
public:
classB(class A *a,anotherclassD *parent);
}