/*定义一个简单的Computer类
有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,
有两个公有成员函数run、stop。cpu为CPU类的一个对象,
ram为RAM类的一个对象,cdrom为CDROM类的一个对象,
定义并实现这个类。
2018.4.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,"!@!");
RAM ra(1024,10,"!#@!$");
CDROM cd(2561,"$#%$#^");
Computer cs(cp, ra, cd);
cs.run();
cs.details();
cs.stop();
return 0;
}
  • 测试截图

C++定义一个简单的Computer类的更多相关文章

  1. python+selenium之自定义封装一个简单的Log类

    python+selenium之自定义封装一个简单的Log类 一. 问题分析: 我们需要封装一个简单的日志类,主要有以下内容: 1. 生成的日志文件格式是 年月日时分秒.log 2. 生成的xxx.l ...

  2. Python之自定义封装一个简单的Log类

    参考:http://www.jb51.net/article/42626.htm 参考:http://blog.csdn.net/u011541946/article/details/70198676 ...

  3. VC++ 一个简单的Log类

    在软件开发中,为程序建立Log日志是很必要的,它可以记录程序运行的状态以及出错信息,方便维护和调试. 下面实现了一个简单的Log类,使用非常简单,仅供参考. // CLogHelper.h : hea ...

  4. Python+Selenium中级篇之8-Python自定义封装一个简单的Log类《转载》

    Python+Selenium中级篇之8-Python自定义封装一个简单的Log类: https://blog.csdn.net/u011541946/article/details/70198676

  5. CREATE OPERATOR CLASS - 定义一个新的操作符类

    SYNOPSIS CREATE OPERATOR CLASS name [ DEFAULT ] FOR TYPE data_type USING index_method AS { OPERATOR ...

  6. 一个简单的c++类的定义和实例化

    #include "iostream" #include <string> using namespace std; class mycoach { private: ...

  7. lua定义一个简单的类

    classA.lua: classA = { a = , b = , --__index = classA; }; classA.__index = classA; function classA:n ...

  8. [转贴]从零开始学C++之STL(二):实现一个简单容器模板类Vec(模仿VC6.0 中 vector 的实现、vector 的容量capacity 增长问题)

    首先,vector 在VC 2008 中的实现比较复杂,虽然vector 的声明跟VC6.0 是一致的,如下:  C++ Code  1 2   template < class _Ty, cl ...

  9. 自己写的一个简单的Tab类

    //------------- PS_DOM 功能函数 start----------------var PS_DOM ={ indexOf: function(arr, e){ for(var i= ...

随机推荐

  1. 【学习笔记】String进阶:StringBuffer类(线程安全)和StringBuilder类

    一.除了使用String类存储字符串之外,还可以使用StringBuffer类存储字符串.而且它是比String类更高效的存储字符串的一种引用数据类型. 优点: 对字符串进行连接操作时,使用Strin ...

  2. 2、Dubbo源码解析--服务发布原理(Netty服务暴露)

    一.服务发布 - 原理: 首先看Dubbo日志,截取重要部分: 1)暴露本地服务 Export dubbo service com.alibaba.dubbo.demo.DemoService to ...

  3. 【基础笔记】《html&CSS设计与构造网站》一书导读

    ◉HTML 1.结构网页使用HTML HyperText Markup Language 来描述页面结构超文本标记语言允许对文本建立链接,允许对文本进行标记网页开头都有一个DOCTYPE 文档类型 声 ...

  4. Html5的map在实际使用中遇到的问题及解决方案

    前言:百度了一下html map,嗯嗯,介绍的挺详细的,如果是初学者,直接看他们的教程,挺好的,就不用我再多说了. 不过我发现一个问题,就是都是介绍map有什么属性怎么用的,这明显就是照搬文档自己再改 ...

  5. SpagoBI 和 开源ERP(iDempiere)整合入门

    Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...

  6. mac 上配置 maven

    1. 将maven压缩包解压至/Users/suqiuhui/Applications目录下的新建文件夹dev下 2. 打开终端(系统根目录,~/下) 3. 如果没有 .bash_profile 文件 ...

  7. 多线程(五)~ wait/notify机制(等待/通知)

    首先我们来看一张图,这张图描述了线程操作的几个步骤. 图已经描述的很清楚了,这里除了wait()之外,其他的前面都已经接触过了. 这一章我们主要来说一下和wait()相关的操作,其实和wait()相关 ...

  8. Java Hotspot client模式和server模式的区别

    当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译器, 而-server模式启动的虚拟机采用相对重量级,代号为C2的编译器. C2比C1编译器编译的相对彻底,服务起来之后,性能 ...

  9. File not Found:DockForm.dcu的解决办法

    安装控件时,如果引用了dsgnintf单元,那么就会提示找不到proxy.pas 或者DockForm.dcu的错误,只需在安装控件包时添加“lib\DesignIde.dcp”即可

  10. jQuery的datatable的destroy属性,和$("#test").dataTable().fnDestroy();区别,两者的区别

    jQuery的datatable的destroy属性,和$("#test").dataTable().fnDestroy();区别,两者的区别. 1 destroy属性是,销毁实例 ...