注册 登录
编程论坛 C++教室

错误在哪里,求大神指教

爱学习ing 发布于 2014-04-14 08:25, 606 次点击

建立名为Point的点类,该类有两个私有成员变量x和y,还有一个用来表示当前点对象总数的静态私有成员。定义一个用于输出点总数的成员函数;一个友元函数,该函数的参数为点类的对象,通过该函数能够输出点的两个私有数据成员x和y。
创建若干个对象,然后显示他们的数据成员以及当前点的总数。
#include<iostream.h>
class point
{
    int x,y;
    static int number;
public:
    friend void display(point a);
    void init(int m,int n)
    {
        x=m;
        y=n;
    }
    static void show()
    {
        number=number++;
        cout<<"number="<<number<<endl;
    }
   
};
void display(point a)
{
    cout<<"x="<<a.x<<endl;
    cout<<"y="<<a.y<<endl;
}
int point::number=0;
void main()
{
    point p;
    p.init(1,2);
    p.show();
    p.display();
   
}

若把display换成show就可以运行,求大神讲述原因(输出点总数的数据成员必须和友元函数名一样吗?)谢谢帮助!!!!!!
4 回复
#2
爱学习ing2014-04-14 08:27
输出点总数的数据成员函数为什么要和友元函数一样啊啊啊,谢谢大神指教
#3
爱学习ing2014-04-14 08:58
#include<iostream.h>
class point
{
    int x,y;
    static int number;
public:
    friend void show(point a);
    point(int m,int n)
    {
        x=m;
        y=n;
    }
    static void display()
    {
        number=number++;
        cout<<"number="<<number<<endl;
    }

   
};
void show(point a)
{
    cout<<"x="<<a.x<<endl;
    cout<<"y="<<a.y<<endl;
}
int point::number=0;
void main()
{
    point p(1,2);
    show(p);
    p.display();
   
}
我找到错误了,是主函数调用出错了,
#4
hubinyes2014-04-14 15:46
#5
骚年来一发2014-04-18 16:48
1