当私有继承时,基类的所有public成员都变成了private。如果希望他们中的任何一个是可视的,只要用派生类的public选项声明他们就可以了,例如:
class base1
{
public:
char f() const
{
return 'a';
}
int g() const
{
return 2;
}
float h() const
{
return 3.0;
}
};
class derived : base1
{
public:
base1::f;
base1::h;
};
int main()
{
derived d;
d.f(); //ok
d.h(); //ok
d.g(); //error C2247: 'base1::g' not accessible because 'derived' uses 'private' to inherit from 'base1'
}