“范围”未在此范围内声明

时间:2013-05-22 07:15:26

标签: c++ class

即使在声明和定义之后编译下面的程序时,我收到错误“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;
}

2 个答案:

答案 0 :(得分:1)

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

p.show(r);

这样没有多大意义,所以你可以使它成为非成员函数,或者删除它的参数:

show(r); // non-member

r.show(); // member

答案 1 :(得分:0)

你需要在add的对象中调用show(r)成员函数,就像, r.show(R);