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

这个是关于类的问题,我是初学者,谁能帮我看看我错哪了?

小旭旭 发布于 2013-04-10 22:27, 620 次点击
声明一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个共有成员函数run、stop。其中,rank为枚举类型CPU_Rank,声明为enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};frequency为单位是MHz的整形数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。
这是我的程序:

#include <iostream>
using namespace std;
enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};
class CPU{
public:
    CPU(CPU_RANK r,int f,float v)
    CPU_Rank GetRank()const{return rank;}
    int GetFrequency()const{return frequency;}
    float GetVoltage()const{return voltage;}
   
    void ShowRank(CPU_Rank r){rank=r;}
    void ShowFrequency(int f){frequency=f;}
    void ShowVoltage(float v){voltage=v;}
   
    void Run(){cout<<"CPU开始运行!"<<endl;}
    void Stop(){cout<<"CPU停止运行!"<<endl;}
private:
    int frequency;
    float voltage;
    CPU_Rank rank;
}
CPU::CPU(CPU_RANK r,int f,float v){
    rank=r;
    frquency=f;
    voltage=v;
    cout<<"形成了一个CPU"<<endl;
}
~CPU();
int main()
{
    CPU c(P2,200,2);
    c.Run();
    c.Stop();
}

我有点混乱,希望会的人们帮我解决下这个问题,我现在确实很混乱。。。谢谢了哈
7 回复
#2
TonyDeng2013-04-10 22:30
不知道你到底有什么问题,就算你当自己是铁扇公主,别人也不都是孙悟空呀。
#3
小旭旭2013-04-10 22:33
回复 2楼 TonyDeng
#4
fanpengpeng2013-04-10 23:04
楼主 你真的是很混乱 来看看你的代码吧
1. 类定义要以分号结束
class CPU{
/* */
}

2. 类成员定义要以分号结束
CPU(CPU_RANK r,int f,float v)

3. 类成员要在类中定义 类外实现
~CPU();//析构函数这样写在外面 想做什么

4. 大小写要谨慎
CPU_RANK//这个是什么

5. 变量名不要拼错
CPU::CPU(CPU_RANK r,int f,float v){
    rank=r;
    frquency=f;
    voltage=v;
    cout<<"形成了一个CPU"<<endl;
}

6. main函数记得return 0
7. 函数名字要有真实的含义 不要误导观众
void ShowRank(CPU_Rank r){rank=r;}//你show了什么
    void ShowFrequency(int f){frequency=f;}
    void ShowVoltage(float v){voltage=v;}
#5
peach54602013-04-11 06:48
以下是引用TonyDeng在2013-4-10 22:30:57的发言:

不知道你到底有什么问题,就算你当自己是铁扇公主,别人也不都是孙悟空呀。

说得好
#6
fanflysheep2013-04-12 00:05
#include <iostream>
using namespace std;

enum CPU_RANK{P1=1,P2,P3,P4,P5,P6,P7};//CPU_RANK的大小写上下文统一呀!!

class CPU{
public:
    CPU():rank(P1),frequency(0),voltage(0.0){}//最好加上默认构造吧
    CPU(CPU_RANK r,int f,float v);//需要一个 ;
    ~CPU(){}

    CPU_RANK GetRank()const{return rank;}
    int GetFrequency()const{return frequency;}
    float GetVoltage()const{return voltage;}
   
    void ShowRank(CPU_RANK r){rank=r;}
    void ShowFrequency(int f){frequency=f;}
    void ShowVoltage(float v){voltage=v;}
   
    void Run(){cout<<"CPU开始运行!"<<endl;}
    void Stop(){cout<<"CPU停止运行!"<<endl;}
private:
    int frequency;
    float voltage;
    CPU_RANK rank;
};//类结束后加分号


CPU::CPU(CPU_RANK r,int f,float v){
    rank=r;
    frequency=f;
    voltage=v;
    cout<<"形成了一个CPU"<<endl;
}

int main()
{
    CPU c(P2,200,2);
    c.Run();
    c.Stop();
    return 0;
}
#7
aa4959397922013-04-12 12:29
我遇到一个问题。
#8
aa4959397922013-04-12 12:29
然后一连串的原文。最后,我不知道问题出在哪了~!
1