1 个回答
成都月子中心
回答于 2024-07-20
已采纳
提问:c++改错题
#include<iostream>using namespace std;class A{ int a,b;public:friend void setval(int i,int j); //错误原因1 void showA(){cout<<a<<","<<b<<endl; }};void setval(int i,int j ) //错误原因2{a=i; b=j;}int main(){A obj1;obj1.setval(2,3); //错误原因3,提示:如何确定这个友元函数setval是给对象obj1的两个成员变量a、b赋值?有何根据?所以此处这样写对吗?试根据此提示修改三处错误。obj1.showA();}
网友回答:
错误原因:setval函数必须增加一个参数A*obj,而且必须是指针,否则无法赋值。以下是修改后的:
#include<iostream>
using namespace std;
class A
{
int a,b;
public: friend void setval(int i,int j,A* obj);
void showA() { cout<<a<<","<<b<<endl; }
};
void setval(int i,int j,A* obj)
{ obj->a=i;obj->b=j;}
int main()
{
A obj1;
A*obj0=&obj1;
setval(2,3,obj0);
obj1.showA();
}
运行结果:

我来回答
相关问题
1
回答
游戏王卡组推荐
单机游戏
567 浏览