问题 填空题

下列程序编译错误,是由于划线处缺少某个语句,该语句是______。 #include<iostream.h> class A { private: int numl; public: A( ):numl(0){} A(int i):numl(i){} }; class B { private: int num2; public: B( ):num2(0){} B(int i):num2(i){} int my_math(A obj1, B obj2); }; int B::my_math(A obj1,B obj2) { return(obj1.numl+obj2.num2); } void main(void) { A objl(4); B obj,obj2(5); cout<<"obj1+obj2:"<<obj.my_math(obj1,obj2); }

答案

参考答案:friend class B;

解析: 在B类中出现了对A类中私有成员numl的直接访问,这是不允许的。所以必须要把类B设成类A的友员才可以通过编译。

填空题
单项选择题