首页 新闻 会员 周边

C++友元的声明问题

0
悬赏园豆:20 [已关闭问题] 关闭于 2019-10-25 17:39

代码的要求是B中的私有fun作为A的友元函数,能访问A中的私有元素,然后B中要包含A的对象,但是由于友元声明问题,只能声明指向A的指针
我希望能不用指针,而是直接使用A的对象,怎么修改?
如果有学习C++的大佬,交个朋友

include <iostream>

//声明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;
}

Yuzero的主页 Yuzero | 菜鸟二级 | 园豆:218
提问于:2019-10-25 17:11
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册