C++的小发现 请大家帮忙看看 对么 书本和实践是有差距的

//2. 定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,
//有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,
//cdrom为CDROM类的一个对象,定义并实现这个类。

#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)
 {
  rank=x;
  frequency=y;
  voltage=z;
  cout<<"cpu create"<<endl;
 }
 CPU(CPU &c);
 ~CPU(){cout<<"cpu reset"<<endl;}
private:
 CPU_Rank rank;
 int frequency;
 float voltage;
};
CPU::CPU(CPU &c)
{
 rank=c.rank;
 frequency=c.frequency;
 voltage=c.voltage;
 cout<<"cpu copy"<<endl;
}

class RAM
{
public:
 RAM(int x=1)
 {
  ram=x;
  cout<<"ram create"<<endl;
 }
 RAM(RAM &r);
 ~RAM(){cout<<"RAM reset"<<endl;}
private:
 int ram;
};

RAM::RAM(RAM &r)
{
 ram=r.ram;
 cout<<"ram copy"<<endl;
}

class CDROM
{
public:
 CDROM(int m)
 {
  cdrom=m;
  cout<<"CD create "<<endl;
 }
 CDROM(CDROM &d);
 ~CDROM (){cout<<"CD reset"<<endl;}
private:
 int cdrom;
};
CDROM::CDROM(CDROM &d)
{
 cdrom=d.cdrom;
 cout<<"cdrom copy"<<endl;o
}

class Computer
{
public:
 Computer(CPU x,RAM y,CDROM z);
 Computer(Computer &p);
 ~Computer(){cout<<"computer reset"<<endl;}
private:
 CPU cpu;
 RAM ram;
 CDROM cdrom;

};

Computer::Computer(CPU x,RAM y,CDROM z):cpu(x),ram(y),cdrom(z)
{
 cout<<"Computer create1"<<endl;
}
Computer::Computer(Computer &p):cpu(p.cpu),ram(p.ram),cdrom(p.cdrom)
{
 cout<<"computer copy"<<endl;
}

int main (void)
{
 CPU a(P1,2,3);
 RAM b(3);
 CDROM c(4);
 Computer d(a,b,c);
 Computer e(d);
 return 0;

}

//书上讲的 调用内嵌对象的构造函数,调用顺序和定义的时候一样, 可是结果相反。 

大家帮忙看看    我猜想是因为栈空间的影响   求大牛

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值