#include <iostream>
using namespace std;
class B;
class A
{
public:
void MyMethod() { std::cout << "In A" << std::endl; }
private:
friend class B;
A() {};
};
class B
{
public:
A createA()
{
A result; //cannot access private member declare in class 'A'
return result;
}
};
int main() {
B b;
A a = b.createA();
a.MyMethod();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQjsKCmNsYXNzIEEKewpwdWJsaWM6CiAJdm9pZCBNeU1ldGhvZCgpIHsgc3RkOjpjb3V0IDw8ICJJbiBBIiA8PCBzdGQ6OmVuZGw7IH0KCnByaXZhdGU6CiAgICBmcmllbmQgY2xhc3MgQjsKCUEoKSB7fTsKfTsKCmNsYXNzIEIKewoJcHVibGljOgoJCUEgY3JlYXRlQSgpCgkJewoJCQlBIHJlc3VsdDsgLy9jYW5ub3QgYWNjZXNzIHByaXZhdGUgbWVtYmVyIGRlY2xhcmUgaW4gY2xhc3MgJ0EnCiAgICAJCXJldHVybiByZXN1bHQ7CgkJfQp9OwoKaW50IG1haW4oKSB7CglCIGI7CglBIGEgPSBiLmNyZWF0ZUEoKTsKCWEuTXlNZXRob2QoKTsKCXJldHVybiAwOwp9