代码的要求是B中的私有fun作为A的友元函数,能访问A中的私有元素,然后B中要包含A的对象,但是由于友元声明问题,只能声明指向A的指针
我希望能不用指针,而是直接使用A的对象,怎么修改?
如果有学习C++的大佬,交个朋友
//声明A,B中要使用A的指针
class A;
class B {
friend class A;
private:
A* pa;//使用指针
void fun();//能访问A中私有成员的函数
public:
B();
void sss();//调用fun()的接口
};
//再来定义A,使用友元声明
class A {
private:
int i;
int j;
friend void B::fun();
};
void B::fun() {
pa->i = 8;
std::cout << pa->i << std::endl;
}
B::B() : pa(new A) {}
void B::sss() {
fun();
}
int main()
{
B b;
b.sss();
return 0;
}