即使在声明和定义之后编译下面的程序时,我收到错误“show not not statement in this scope”。不知道我哪里错了。请建议。
谢谢
#include < iostream >
using namespace std;
class add
{
int x;
int y;
public:
void putdata(int,int);
void show(add);
friend add sum(add,add);
};
void add :: putdata (int m,int n)
{
x = m;
y = n;
}
void add :: show(add c)
{
cout<<c.x <<" "<<c.y<<endl;
}
add sum(add a1,add a2)
{
add a3;
a3.x = a1.x + a2.x;
a3.y = a1.y + a2.y;
return(a3);
}
int main()
{
add p,q,r;
p.putdata(10,15);
r.putdata(20,25);
r = sum(p,q);
show(r);
return 0;
}
〜
答案 0 :(得分:1)
show
是add
的非静态成员函数,因此您需要在add
的实例上调用它:
p.show(r);
这样没有多大意义,所以你可以使它成为非成员函数,或者删除它的参数:
show(r); // non-member
或
r.show(); // member
答案 1 :(得分:0)
你需要在add的对象中调用show(r)成员函数,就像, r.show(R);