"show"未在此范围内声明

"show" was not declared in this scope

本文关键字:范围内 声明 show      更新时间:2023-10-16

即使在声明和定义之后编译下面的程序时,我也得到错误"show未在此范围内声明"。不知道我错在哪里。请建议。

感谢
 #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;
}

~

showadd的非静态成员函数,因此需要在add的实例上调用它:

p.show(r);

这样没有多大意义,所以你可以把它变成一个非成员函数,或者去掉它的形参:

show(r); // non-member

r.show(); // member

您需要在add对象中调用show(r)成员函数,如下所示:r.show (r);