A-A+
下列程序编译错误 是由于划线处缺少某个语句 该语句是______。 include<iost
问题详情
下列程序编译错误,是由于划线处缺少某个语句,该语句是______。
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;
friend class B; 解析:在B类中出现了对A类中私有成员numl的直接访问,这是不允许的。所以必须要把类B设成类A的友员才可以通过编译。