永发信息网

C++问题急需

答案:3  悬赏:40  手机版
解决时间 2021-04-29 11:39
  • 提问者网友:心牵心
  • 2021-04-29 00:43

#include <iostream>
using namespace std;

enum JB {P1=1,P2,P3,P4,P5,P6,P7};
class CPU
{
private:
JB rank ;
int PL;
float FY;
public:
CPU (JB r, int f, float v)
{
JB rank = r;
PL = f;
FY = v;
cout<<"构造了一个CPU!"<<endl;
}
~CPU () { cout<<"析构了一个CPU!"<<endl; }

JB GetRank() const { return rank; }
int GetPL() const { return PL; }
float GetFY() const { return FY; }

void SetRank(JB r) { rank = r; }
void SetPL(int f) { PL = f; }
void SetFY(float v) { FY = v; }

void Run() {cout<<"CPU开始运行!"<<endl; }
void Stop() {cout<<"CPU停止运行!"<<endl; }
};
class RAM
{
private:
int size;
public:
RAM (int s)
{
size = s;
cout<<"构造了一个RAM!"<<endl;
}
~RAM () {cout<<"析构了一个RAM!"<<endl; }
int Getsize() const { return size; }
void Setsize(int s) { size = s; }

void Run() {cout<<"RAM开始运行!"<<endl; }
void Stop() {cout<<"RAM停止运行!"<<endl; }
};
class COMPUTER
{
private:
CPU cpu;
RAM ram;
public:
COMPUTER()
{
cout<<"构造了一个COMPUTER!"<<endl;
}
~COMPUTER ()
{
cout<<"析构了一个COMPUTER!"<<endl;

}

void Run()
{
cout<<"COMPUTER开始运行!"<<endl;
cpu.Run();
ram.Run();
}
void Stop()
{
ram.Stop();
cpu.Stop();
cout<<"COMPUTER停止运行!"<<endl;
}
};
void main()
{
COMPUTER a;
a.Run();
a.Stop();
}

最佳答案
  • 五星知识达人网友:十鸦
  • 2021-04-29 02:02

CPU类中的构造函数有错误:


CPU (JB r, int f, float v)
{
JB rank = r;//这句应该改为 rank=r;
PL = f;
FY = v;
cout<<"构造了一个CPU!"<<endl;
}

全部回答
  • 1楼网友:末日狂欢
  • 2021-04-29 04:57

不得不说这个程序写的很烂~~

1.CPU构造函数里:JB rank = r; 这句rank 重复定义肯定要报错,去JB!;

2.为什么还有这么多废码:

JB GetRank() const { return rank; } int GetPL() const { return PL; } float GetFY() const { return FY; }

void SetRank(JB r) { rank = r; } void SetPL(int f) { PL = f; } void SetFY(float v) { FY = v; }

这些函数没用过啊~

3.整个程序无法运行:创建computer对象时,未传进任何实参,里面的CPU和RAM 产生了什么对象,关键是你里面有传实参的函数啊;

4.在computer类里;Run 函数这里会形成死循环的;不妨用继承,虚函数来写;

5.无语了;

6.建议你先好好读书课本,边看书边上机!

  • 2楼网友:时间的尘埃
  • 2021-04-29 03:37
我感觉应该是你的构造函数那地方出错了,当在你在COPMUTER中初始化CPU的时候,他调用的是无参的构造函数,但是由于你定义了构造函数,所以无参的构造函数就无法进行调用,导致最后运行的时候报错!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯