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

请问我哪里错了

tangweiwei 发布于 2014-10-31 16:25, 463 次点击
#include <iostream>
using namespace std;

enum Computer_Op {dos,windows,xp,win7,vista,win8,win10};
class Computer
{
private:
    Computer_Op op;
    int mem;
    int hard;
public:
  
    Computer_Op GetOp()
    {
        return op;
    }
    int Mem()
    {
        return mem;
    }
    int Hard()
    {
        return hard;
    }
    void SetOp(Computer_Op o)
    {
        op= o;
    }
    void SetMem(int m)
    {
        mem = m;
    }
    void SetHard(int h)
    {
        hard= h;
    }
    void Run()
    {
        cout << "系统属性值!" << endl;
    }
    void Stop()
    {
        cout << "结束!" << endl;
    }
};
void main()
{
    Computer a;
    a.SetMem(100);
    a.SetOp(dos);
    a.SetHard(5.0);
    a.Run();

    cout << a.GetMem() <<endl;
    cout << a.GetOp() <<endl;
    cout << a.GetHard() <<endl;

    a.Stop();
}

5 回复
#2
zcdjt2014-10-31 22:57
#include <iostream>
using namespace std;

enum Computer_Op {dos,windows,xp,win7,vista,win8,win10};
class Computer
{
private:
    Computer_Op op;
    int mem;
    int hard;
public:
  
    Computer_Op GetOp()
    {
        return op;
    }
    int GetMem()
    {
        return mem;
    }
    int GetHard()
    {
        return hard;
    }
    void SetOp(Computer_Op o)
    {
        op= o;
    }
    void SetMem(int m)
    {
        mem = m;
    }
    void SetHard(int h)
    {
        hard= h;
    }
    void Run()
    {
        cout << "系统属性值!" << endl;
    }
    void Stop()
    {
        cout << "结束!" << endl;
    }
};
int main()
{
    Computer a;
    a.SetMem(100);
    a.SetOp(dos);
    a.SetHard(5);
    a.Run();

    cout << a.GetMem() <<endl;
    cout << a.GetOp() <<endl;
    cout << a.GetHard() <<endl;

    a.Stop();
    system("pause");
    return 0;
}
你自己看看主函数必须为int型;a.SetHand(5.0)改为5因为为整形,5.0为double型;a.GetMem(),a.GetOp()这两个和你类里面函数名要一致。
#3
stop12042014-11-01 00:29
回复 2 楼 zcdjt
参数int  传入double型可以. 可自动转换为int型.
#4
stop12042014-11-01 00:30
主要错误就是void main 改成int main (某编译器支持void)
然后你有三句没传入参数,  三个函数必须传入参数,或者你重载一个出来.
cout << a.GetMem() <<endl;
    cout << a.GetOp() <<endl;
    cout << a.GetHard() <<endl;
#5
驽马吐了我2014-11-02 21:07
enum Computer_Op {dos,windows,xp,win7,vista,win8,win10};
大神有也新手,这句什么意思。我还没学到
#6
stop12042014-11-03 08:12
回复 5 楼 驽马吐了我
enum Computer_Op {dos,windows,xp,win7,vista,win8,win10};
enum 枚举关键词
 
然后默认 dos值是0  windows值是1 依次类推

然后 Computer_Op 你当做一个类型来使用,(如 int a=1;)
Computer_Op type;
type只能赋值枚举时使用的枚举量 dos \ windos \ xp 而不能是其他
1