这有什么不好理解的,你把friend去掉试试,看看出什么问题~
友元是为方便对象访问私有成员设置的,对象访问私有数据成员只能通过公有函数来访问,但是在友元函数中可以使用 对象.数据成员 的方式访问私有数据成员~
对于友元类,如果一个类是另一个类的友元类,则则个类的所有函数是另一个类的友元函数~ 这在类的嵌套中访问数据成员很方便。
友元破坏类的封装性~
好好看看课本,体会体会~
要是类的话 最好使用 class 而不要使用 struct~
friend在这里确实是沟通了Student::display( );和class Box的作用域。但是被friend沟通的display()中没有
private :
int num;
string name;
char sex;
这些标识符,它们不属于这个函数作用域本身,它们能被访问在于void display( )的外部而在class Student类作用域中。friend只是简单沟通了void display( )的作用域,在void display( )的作用域本身中没有那些private私有成员,所以报错了~
童鞋
你都没 用 对象ob调用 B类的 twice方法
如何使 对象a的data成员 变成100 ?
oa.show();
ob.twice(oa);
oa.show();
twice函数一直没用过,怎么变?
A oa(50);
B ob;
ob.twice(oa); 加这句,调用一次
oa.show();
哈哈,有人解决了...潜水了