0

即使在声明和定义之后编译下面的程序时,我也会收到错误“显示未在此范围内声明”。不知道我哪里错了。请建议。

谢谢

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

~

4

2 回答 2

1

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

p.show(r);

这样没有多大意义,因此您可以将其设为非成员函数,或删除其参数:

show(r); // non-member

或者

r.show(); // member
于 2013-05-22T07:18:34.263 回答
0

您需要从 add 对象中调用 show(r) 成员函数,就像 r.show(r);

于 2013-05-22T07:25:25.750 回答