这个C++程序怎么了啊 急急急!!

来源:百度知道 编辑:UC知道 时间:2024/05/29 19:09:13
#include<iostream.h>
enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};
class CPU
{
private:
CPU_Rank rank;
int frequency;
float voltage;
public:
CPU(CPU_Rank r,int f,float v)
{
rank=r;
frequency=f;
voltage=v;
cout<<"构造了一个CPU!"<<endl;
}
~CPU(){cout<<"析构了一个CPU!"<<endl;}
CPU_Rank GetRank()const{return rank;}
int GetFrequency() const{return frequency;}
float GetVoltage() const{return voltage;}
void SetRank(CPU_Rank r){rank=r;}
void SetFrequency(int f){frequency=f;}
void Run(){cout<<"CPU开始运行!"<<endl;}
void Stop(){cout<<"CPU停止运行!"<<endl;}
};
void main()
{CPU a(P6,300,2.8);
Run();
Stop();
return 0;
}
错误提示
Compiling...
linxi1.cpp
F:\新建文件夹\linxi1.cpp(27) : warning C4305: 'argument' : truncation from 'c

你总要告诉我们你这个是做什么的吧?

void main()
{CPU a(P6,300,2.8);
Run();
Stop();
return 0;
}
改成
int main() //int型的main最后才能return 0
{
CPU a(P6,300,2.8f); //这里定义的是float,所以要用2.8f表示,不然2.8表示的double
a.Run(); //RUN跟STOP都是CPU的方法
a.Stop();
return 0;
}

Compiling...
linxi1.cpp

意思:
正在编译...
文件:linxi1.cpp

F:\新建文件夹\linxi1.cpp(27) : warning C4305: 'argument' : truncation from 'const double' to 'float'

这是一个警告!
这句话是说传参的时候传的是double,2.8是一个double常量,2.8f是一个float常量,注意:如果一个浮点数最后没有说明f的话,就是double型!

把 CPU a(P6,300,2.8); 改成 CPU a(P6,300,2.8f);

F:\新建文件夹\linxi1.cpp(28) : error C2065: 'Run' : undeclared identifier
F:\新建文件夹\linxi1.cpp(29) : error C2065: 'Stop' : undeclared identifier

这是一个错误!
这是初学者最容易犯的错误!Run没有定义!因为你看啊,Run是CPU类的一个成员函数,但是你没有指定谁去调用,解决方法:


Run();
Stop();
改成