#include <iostream>
using namespace std;
class CPU
{
private:
int val;
public:
CPU(int c = 1) { val = c; }
friend ostream& operator << (ostream& output, CPU& c)
{
output << "CPU" << c.val;
return output;
}
};
class RAM
{
private:
int val;
public:
RAM(int ram = 2) { val = ram; }
friend ostream& operator << (ostream& output, RAM& r)
{
output << "RAM" << r.val;
return output;
}
};
class CDROM
{
private:
int val;
public:
CDROM(int cdrom = 3) { val = cdrom; }
friend ostream& operator << (ostream& output, CDROM& c)
{
output << "CDROM" << c.val;
return output;
}
};
class Computer
{
public:
Computer(CPU c, RAM r, CDROM d);
~Computer();
void run()
{
cout << "cpu为:" << cpu << " " << "ram为:" << ram << " " << "cdrom为:" << cdrom << endl;
cout << "调用的是这个run函数" << endl;
}
void stop()
{
cout << "调用的是这个stop函数" << endl;
}
private:
CPU cpu;
RAM ram;
CDROM cdrom;
};
Computer::Computer(CPU c, RAM r, CDROM d) :cpu(c), ram(r), cdrom(d)
{
cout << "调用的是构造函数" << endl;
}
Computer::~Computer()
{
cout << "调用的是该析构函数" << endl;
}
int main()
{
CPU c;
RAM r;
CDROM cd;
Computer thing(c, r, cd);
thing.run();
thing.stop();
return 0;
}