/*定义一个简单的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. Scala 知识点掌握2

    Scala 基础知识点巩固2 1.集合中常用的函数 sum / max / min # 定义一个List[Int]val list1 = List(1,3,4,6,8,9)# 取集合中所有元素的和li ...

  2. Spring注解之Controller中获取请求参数及验证使用

    1.处理request的uri部分的参数:@PathVariable. 2.处理request header部分的参数:@RequestHeader,@CookieValue@RequestHeade ...

  3. 《CSS实现单行、多行文本溢出显示省略号》

    如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览. 实现方式: overflow: hidden; te ...

  4. ASP.NET 中对大文件上传的简单处理

    在 ASP.NET 开发的过程中,文件上传往往使用自带的 FileUpload 控件,可是用过的人都知道,这个控件的局限性十分大,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的 ...

  5. 导出word的另类做法

    一.背景 项目中经常有导出word的功能,一般用poi来做,但在要求外观较高的情况下,用poi来做基本不能满足需求 而事实上word除了我们一般使用的模式外,还存在xml.与html模式(你没看错,右 ...

  6. 摩拜ofo挥师三四线市场 第二梯队面临"团灭"危机

    共享单车领域,在一二线主要城市的大规模扩张时期结束,行业内头部企业目标向三四线市场的转移挤压了当地共享单车企业的生存空间,第二梯队的创业公司正面临被“杀死”的危机.上海有多少辆共享单车?答案是150万 ...

  7. day4-基础 字符串操作,文件操作,字符转编码

    1.字符串用法 name = 'daniel' print(name.capitalize()) #首字母大写 >>>daniel print(name.count('a')) #统 ...

  8. Git/Github Learning

    通过网上查找资料,我了解到Git/Github是一款免费.开源的分布式版本控制系统,它可以敏捷高效地处理任何或小或大的项目.同时,它是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的 ...

  9. L2范数惩罚项,高维线性回归

    %matplotlib inline import mxnet from mxnet import nd,autograd from mxnet import gluon,init from mxne ...

  10. mxnet数据操作

    # coding: utf-8 # In[2]: from mxnet import nd # In[3]: x = nd.arange(12) x # In[4]: x.shape,x.size # ...