#include <iostream>
class A
{
private:
void APrivate() { std::cout << "APrivate\n"; }
protected:
void AProtected() { std::cout << "AProtected\n"; }
};
class B : public A
{
friendclass C;
};
class C
{
public:
void CPublic()
{
B bObject;
std::cout << "CPublic calling AProtected\n";
bObject.AProtected();
// Can't do this, APrivate is private to A
//bObject.APrivate();
A aObject;
// Can't do this, you must use a B object to
// access protected methods
//aObject.AProtected();
}
};
int main()
{
C cobj;
cobj.CPublic();
B bobj;
// Can't do this, 'main' isn't a friend of B
// bobj.AProtected();
return 0;
}