刚学C++,问一个很菜的问题
为什么下面这个程序在红色部分出现“error C2061: syntax error : identifier 'P1'”错误呢?
难道COMPUTER类中的CPU对象cpu不能直接通过构造函数对CPU中的成员变量进行赋值吗?
#include<iostream>
using namespace std;
enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7};
class CPU
{
public:
CPU(CPU_Rank Rank, int Frequency, float Voltage)
{
rank = Rank;
frequency = Frequency;
voltage = Voltage;
cout<<"构造了一个CPU"<<endl;
}
CPU()
{
cout<<"构造了一个CPU"<<endl;
}
~CPU()
{
cout<<"析构了一个CPU"<<endl;
}
void run() { cout<<"CPU开始运行!"<<endl; }
void stop(){ cout<<"CPU停止运行!"<<endl; }
private:
CPU_Rank rank;
int frequency;
float voltage;
};
class RAM
{
public:
RAM()
{
cout<<"构造了一个RAM"<<endl;
}
~RAM()
{
cout<<"析构了一个RAM"<<endl;
}
void run() { cout<<"RAM开始运行!"<<endl; }
void stop(){ cout<<"RAM停止运行!"<<endl; }
};
class CDROM
{
public:
CDROM()
{
cout<<"构造了一个CDROM"<<endl;
}
~CDROM()
{
cout<<"析构了一个CDROM"<<endl;
}
void run() { cout<<"CDROM开始运行!"<<endl; }
void stop(){ cout<<"CDROM停止运行!"<<endl; }
};
class COMPUTER
{
private:
CPU cpu(P1,2,3.0};
RAM ram;
CDROM cdrom;
public:
COMPUTER()
{
cout<<"构造了一个COMPUTER"<<endl;
}
~COMPUTER()
{
cout<<"析构了一个COMPUTER"<<endl;
}
void run()
{
cout<<"CDROM开始运行!"<<endl;
cpu.run();
ram.run();
}
void stop()
{
cout<<"CDROM停止运行!"<<endl;
cpu.stop();
ram.stop();
}
};
int main()
{
COMPUTER a;
CPU cpu1(P1,2,3.0);
a.run();
a.stop();
return 0;
}