构造函数和析构函数!

定义“电脑类”,至少包括3个数据成员、3个函数成员,以及构造函数和析构函数,在主函数中创建对象,引用相应成员,保证每个函数成员都有机会被执行。


#include<iostream>
#include<string>
using namespace std;
class CPU {
public:
    CPU(int sta, string tp);
    CPU(const CPU &ad);
    ~CPU();
    void details();
private:
    int standard;
    string brand;
};
CPU::CPU(int sta, string tp) {
    this->standard = sta;
    this->brand = tp;
}
CPU::CPU(const CPU &ad) {
    cout << endl << "Warnning:This Copy constructors.!!!" << endl;
    this->brand = ad.brand;
    this->standard = ad.standard;
}
CPU::~CPU() {

};
void CPU::details() {
    cout << "The details of CPU:" << endl;
    cout << "The brand is " << brand << endl;
    cout << "The standard is " << standard << endl << endl;
}
class RAM {
public:
    RAM(int mem, int bit, string tp);
    RAM(RAM &ad);
    ~RAM();
    void details();
private:
    int memory;
    int bits;
    string brand;
};
RAM::RAM(int mem, int bit, string tp) {
    this->memory = mem;
    this->bits = bit;
    this->brand = tp;
}
RAM::RAM(RAM &ad) {
    cout << endl << "Warnning:This Copy constructors.!!!" << endl;
    this->memory = ad.memory;
    this->bits = ad.bits;
    this->brand = ad.brand;
}
RAM::~RAM() {

}
void RAM::details() {
    cout << "The details of RAM:" << endl;
    cout << "The brand is " << brand << endl;
    cout << "The memory is " << memory << endl;
    cout << "The bits are " << bits << endl << endl;
}
class CDROM
{
public:
    CDROM(int st, string bra);
    CDROM(CDROM &ad);
    ~CDROM();
    void details();
private:
    int standard;
    string brand;
};
CDROM::CDROM(int st, string bra) {
    this->brand = bra;
    this->standard = st;
}
CDROM::CDROM(CDROM &ad) {
    cout << endl << "Warnning:This Copy constructors.!!!" << endl;
    this->brand = ad.brand;
    this->standard = ad.standard;
}
CDROM::~CDROM() {

}
void CDROM::details() {
    cout << "The details of CDROM:" << endl;
    cout << "The brand is " << brand << endl;
    cout << "The standard is " << standard << endl << endl;
}
class Computer {
public:
    Computer(CPU cp, RAM ra, CDROM cdro);
    Computer(Computer &ad);
    ~Computer();
    void stop();
    void run();
    void details();
private:
    CPU cpu;
    RAM ram;
    CDROM cdrom;
};
Computer::Computer(CPU cp, RAM ra, CDROM cdro) :cpu(cp), ram(ra), cdrom(cdro) {
    cout << "Computer is OK!" << endl;
}
Computer::Computer(Computer &ad) : cpu(ad.cpu), ram(ad.ram), cdrom(ad.cdrom) {
    cout << endl << "Warnning:This Copy constructors.!!!" << endl;
    cout << "Computer is OK!" << endl;
}
Computer::~Computer() {

}
void Computer::run() {
    cout << "Computer is running!" << endl;
}
void Computer::stop() {
    cout << "Computer stoped!" << endl;
}
void Computer::details() {
    cpu.details();
    ram.details();
    cdrom.details();
}
int main(void) {
    CPU cp(1, "CPU");
    RAM ra(1024, 10, "RAM");
    CDROM cd(2561, "CDROM^");
    Computer cs(cp, ra, cd);
    cs.run();
    cs.details();
    cs.stop();
    return 0;
}