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

紧急求助

dgzjh_218 发布于 2008-03-27 20:41, 586 次点击
我是初学C++,是为了完成作业而学,下面有这样一段使用静态成员函数小程序,各位大侠帮忙找出错误,并告如何修改,谢谢了:
#include<iostream.h>
#include<string.h>
class person{
public:
    char m_strName[20];
    long m_ID;
public:
    person(char*strName,long ID){strcpy(m_strName,strName);m_ID=ID;    }
    static long GetID()
    {return m_ID; }
};
void main()
{
    person person1("LiuJun",1101640524);
    cout<<"ID="<<person::GetID()<<'\n';
}
7 回复
#2
sunkaidong2008-03-27 20:47
#include<iostream.h>
#include<string.h>
class person
{
public:
    char m_strName[20];
    long m_ID;
public:
    person(char *strName,long ID)
    {
        strcpy(m_strName,strName);
        m_ID=ID;   
    }
    static long GetID(const person &p)
    {   
        return p.m_ID;
    }
};
void main()
{
    person person1("LiuJun",1101640524);
    cout<<"ID="<<person::GetID(person1)<<'\n';
}
#3
dgzjh_2182008-03-27 21:29
谢谢大侠慷慨解答
还有一题请教:
#include<iostream.h>
class point
{
protected:
int x,y;
public:
    point(int a,int b) {x=a;y=b; }
    int getX() {RETURN x; }
    int getY() {RETURN y; }
};
class Circle:public point
{
protected:
    int radius;
public:
    Circle(int a=0,int b=0,int r=0){radius=r;}
    int getRadius() {return radius; }
};
void main()
{
    Circle c(100, 150, 200);
    cout<<"x="<<c.getX()<<",y="<<c.getY()<<",radius="<<c.getRadius()<<end1;
}
#4
sunkaidong2008-03-27 21:36
#include<iostream.h>
class point
{
protected:
int x,y;
public:
    point(int a,int b) {x=a;y=b; }
    int getX() {return x; }
    int getY() {return y; }
};
class Circle:public point
{
protected:
    int radius;
public:
    Circle(int a=0,int b=0,int r=0):point(a,b){radius=r;}
    int getRadius() {return radius; }
};
void main()
{
    Circle c(100, 150, 200);
    cout<<"x="<<c.getX()<<",y="<<c.getY()<<",radius="<<c.getRadius()<<endl;
}
#5
dgzjh_2182008-03-27 21:50
谢谢大侠
我实在谢谢大侠解答,最后请教一题:
#include<iostream.h>
class Sample
{
private:
    int n;
public:
    Sample(int x) { n=x;}
    void SetValue(int x) { n=x;}
    void Display() {cout<<"n="<<n<<end1; }
};
void main()
{
  const Sample a(100);
  a.SetValue(0);
  a.Display();
}
#6
sunkaidong2008-03-27 21:57
#include<iostream.h>
class Sample
{
private:
    int n;
public:
    Sample(int x) { n=x;}
    void SetValue(int x)const { }//在常成员里面是不可以改变属性的。或者你把main()里面的const去掉
    void Display()const {cout<<"n="<<n<<endl; }
};
void main()
{
  const Sample a(100);
  a.SetValue(0);
  a.Display();
}
#7
dgzjh_2182008-03-27 22:24
高手大侠请指点迷津
#include<iostream.h>
class A
{
protected:
int a;
public:
    void SetData(int x) {a=x;}
    int GetData() {return a; }
};
class B
{
protected:
int b;
public:
    void SetData(int y) {b=y;}
    int GetData() {return b; }
};

class C:public A,public B
{
public:
    void SetData(int x, int y) {a=x; b=y;}
};
void main()
{
    C c;
    c.SetData(30,70);
    cout<<"a="<<c.GetData()<<",b="<<c.GetData()<<end1;
}
#8
aipb20072008-03-27 23:29
1楼和5楼的程序,设计就有问题。你的意图是错乱的。
1