平台:VC++ 2005 測試通過!
.vcproj
這是使用應用程式嚮導產生的 VC++ 項目的主專案檔案。
它包含產生該檔案的 Visual C++ 的版本資訊,以及有關使用應用程式嚮導選擇的平台、配置和項目功能的資訊。
StdAfx.h, StdAfx.cpp
這些檔案用於產生名為 twod.pch 的先行編譯頭 (PCH) 檔案和名為 StdAfx.obj 的先行編譯類型檔案。
這些都是使用應用程式嚮導產生的 VC++ 檔案故不列出
我只列出程式主要部分!
#include <iostream>
#include <string>
#include <vector>
using namespace std;
enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7};
/*CPU類型的定義*/
class CPU{
private:
CPU_Rank _rank;
int _frequency;
float _voltage;
public:
CPU();//預設建構函式
//CPU(const CPU& rc); //拷貝建構函式
CPU(CPU_Rank r,int f,float v);
~CPU(){cout<<"析構了一個CPU"<<endl;};
void OutPut();
};
CPU::CPU(){
cout<<"調用預設建構函式構造了一個CPU"<<endl;
}
/*CPU::CPU(const CPU& rc):
_rank(rc._rank), _frequency(rc._frequency), _voltage(rc._voltage){
cout<<"調用CPU拷貝建構函式"<<endl;
}
*/
CPU::CPU(CPU_Rank r,int f,float v)
:_rank(r), _frequency(f), _voltage(v)
{
cout<<"構造了一個CPU"<<endl;
}
void CPU::OutPut(){
cout<<endl<<"CPU:"
<<"等級="<< _rank
<<"頻率="<< _frequency
<<"電壓="<< _voltage<<endl;
}
class RAM{
private:
int _memSize;
public:
RAM();
//RAM(const RAM& rr); //拷貝建構函式
RAM(int mem);
~RAM(){cout<<"析構了一個RAM"<<endl;}
void OutPut();
};
/*RAM類型的實現*/
RAM::RAM(){
cout<<"調用預設建構函式構造了一個RAM"<<endl;
}
/*RAM::RAM(const RAM& rr):_memSize(rr._memSize){
cout<<"調用RAM拷貝建構函式"<<endl;
}
*/
RAM::RAM(int mem):_memSize(mem){
cout<<"構造了一個RAM"<<endl;
}
void RAM::OutPut(){
cout<<"記憶體大小:"<<_memSize;
}
class CDROM{
private:
int _speed;
public:
CDROM();
CDROM(int speed);
//CDROM(const CDROM& rcd);
~CDROM(){cout<<"析構了一個CDROM"<<endl;}
void OutPut();
};
CDROM::CDROM():
_speed(0){
cout<<"調用預設建構函式構造了一個CDROM"<<endl;
};
CDROM::CDROM(int speed):_speed(speed){
cout<<"構造了一個CDROM"<<endl;
}
/*CDROM::CDROM(const CDROM& rcd):_speed(rcd._speed){
cout<<"調用CDROM拷貝建構函式"<<endl;
}
*/
void CDROM::OutPut()
{
cout<<endl <<"光碟機速度:"<<_speed<<endl;
}
class COMPUTER{
private:
CPU _cpu;
RAM _ram;
CDROM _cdrom;
public:
COMPUTER(){cout<<"調用預設建構函式構造了一個COMPUTER"<<endl;}
/*請思考傳遞參數的方式不同為何導致程式輸出的內容不同*/
//COMPUTER(const CPU& c,const RAM& r,const CDROM& cd);
COMPUTER(CPU c, RAM r, CDROM cd);
//COMPUTER(const COMPUTER& rc);
~COMPUTER(){cout<<"析構了一個Computer"<<endl;}
void Run() {cout<<"Computer 開始運新!"<<endl;}
void Stop() {cout<<"Computer 停止運行!"<<endl;}
void OutPut();
};
//COMPUTER::COMPUTER(const CPU& c,const RAM& r,const CDROM& cd)
COMPUTER::COMPUTER(CPU c, RAM r, CDROM cd)
:_cpu(c), _ram(r), _cdrom(cd){
cout<<"構造了一個Computer"<<endl;
}
/*COMPUTER::COMPUTER(const COMPUTER& rc)
:_cpu(rc._cpu), _ram(rc._ram), _cdrom(rc._cdrom){
cout<<"調用COMPUTER拷貝建構函式"<<endl;
}
*/
void COMPUTER::OutPut()
{
_cpu.OutPut(); _ram.OutPut(); _cdrom.OutPut();
cout << endl;
}
// ComputerPro.cpp : 定義控制台應用程式的進入點。
//
#include "stdafx.h"
#include "CComputer.h"
int _tmain(int argc, _TCHAR* argv[])
{
CPU c(P4, 1000, 9.6);
RAM r(512);
CDROM cd(5400);
COMPUTER computer1(c, r, cd);
computer1.OutPut();
computer1.Run();
computer1.Stop();
return 0;
}