条款42: 明智地使用私有继承

第一个规则是,和公有继承相反,如果两个类之间的继承关系为私有,编译器一般不会将派生类对象(如Student)转换成基类对象(如Person)

第二个规则是,从私有基类继承而来的成员都成为了派生类的私有成员,即使它们在基类中是保护或公有成员,即派生类对象不能访问基类的所有成员

class person{};

class student :private person{};

void dance(const person &p);

person p;
student s;

void main()
{
    dance(p);//正确
    dance(s);//出错
}

 

posted @ 2014-08-24 13:26  合唱团abc  阅读(149)  评论(0编辑  收藏  举报