c++Z
1.声明一个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 x,int y,float z);
cpu(cpu &p);
void run();
void stop();
~cpu(){cout<<"析构函数"<<endl;}
private:
cpu_rank rank;
int frequency;
float voltage;
};
cpu::cpu(cpu &p)
{
rank=p.rank;
frequency=p.frequency;
voltage=p.voltage;
cout<<"复制构造函数的实现!"<<endl;
}
void cpu::run(cpu_rank rank,int frequency,float voltage)
{
cout<<"程序运行"<<"CPU等级为:"<<rank<<","<<frequency<<"MHz"<<"电压值为:"<<voltage<<endl;
}
void cpu::stop()
{
cout<<"程序停止"<<endl;
}
int main()
{
cpu duixiang(p3,50,200);
cout<<"……"<<endl;
duixiang.run();
duixiang.stop();
return 0;
}
[解决办法]
我在VC6中编译你的代码,发现了几个错误,我单纯的先将你的语法错误改正,没有深究你的这个程序究竟是干什么的
首先1.void cpu::run(cpu_rank rank,int frequency,float voltage);没有在类体中进行声明
2.cpu duixiang(p3,50,200);p3没有定义,p3应该改为P3,
3.cpu(cpu_rank x,int y,float z);只在类中进行声明,没有在实现。
4.void run();也只是声明,没有实现
修改如下:
- C/C++ code
#include <iostream>using namespace std;enum cpu_rank{P1=1,P2,P3,P4,P5,P6,P7};class cpu{public: cpu(cpu_rank x,int y,float z); cpu(cpu &p); void run(){ } void run(cpu_rank rank,int frequency,float voltage); void stop(); ~cpu(){cout<<"析构函数"<<endl;}private: cpu_rank rank; int frequency; float voltage;};cpu::cpu(cpu &p){ rank=p.rank; frequency=p.frequency; voltage=p.voltage; cout<<"复制构造函数的实现!"<<endl;}void cpu::run(cpu_rank rank,int frequency,float voltage){ cout<<"程序运行"<<"CPU等级为:"<<rank<<","<<frequency<<"MHz"<<"电压值为:"<<voltage<<endl;}void cpu::stop(){ cout<<"程序停止"<<endl;}cpu::cpu(cpu_rank x,int y,float z){}int main(){ cpu duixiang(P3,50,200); cout<<"……"<<endl; duixiang.run(); duixiang.stop(); return 0;}