Problem C: 计算机类
Description
定义一个Computer类,有两个属性:
1. 字符串属性name,用于表示计算机的名字。
2. 静态整型属性cnt,用于记录产生的计算机对象的个数。
至少有如下成员函数:
1. 构造函数和拷贝构造函数以及析构函数。
2. setName(char*):用于修改当前对象的name属性为形参指定的串,并返回当前对象。
3. print()方法,用于输出当前对象的name属性。
4. getCnt()方法,用于返回cnt的值。
Input
输入只有一行,是一个不含空白符的字符串。
Output
见样例。
Sample Input
Sample Output
HINT
不得使用string。
主函数
int main()
{
char str[101];
cout<<"1:"<<Computer::getCnt()<<" computers."<<endl;
Computer com1("Tom"), com2(com1);
cout<<"2:"<<com2.getCnt()<<" computer."<<endl;
cin>>str;
com2.setName(str).print();
com2.print();
cout<<"3:"<<com2.getCnt()<<" computer."<<endl;
return 0;
}
解析:此题的难点在于setName的返回类型,可供选择有三种:一是类的指针,显然不行;二是类,而此题有新创内存,会造成指针悬挂的问题,所以不行,三是类的引用,注意写完之后要加return *this;
ac代码
#include<iostream>
#include<iomanip>
#include<cstring>
using namespace std;
class Computer
{
private:
static int cnt;
char* name;
public:
Computer(char* ch)
{
cnt++;
name=new char[strlen(ch)+1];
strcpy(name,ch);
}
Computer(Computer &com)
{
cnt++;
this->name=new char[strlen(com.name)+1];
strcpy(this->name,com.name);
}
Computer& setName(char* ch)
{
name=new char[strlen(ch)+1];
strcpy(name,ch);
return *this;
}
void print()
{
cout<<name<<endl;
}
~Computer()
{
delete []name;
}
static int getCnt()
{
return cnt;
}
};
int Computer::cnt=0;
Problem C: 计算机类的更多相关文章
- [Z] 计算机类会议期刊根据引用数排名
一位cornell的教授做的计算机类期刊会议依据Microsoft Research引用数的排名 link:http://www.cs.cornell.edu/andru/csconf.html Th ...
- Problem E: 分数类的输出
Problem E: 分数类的输出 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 2699 Solved: 1227[Submit][Status][ ...
- 读研 or 工作?对计算机类专业学习的看法
先来介绍一下自己 中南大学(不知名985双一流 A 类)大二计算机专业本科生,才学编程1年多一点.大一的时候搞了大半年 ACM,现在慢慢转向项目开发(在学习 JAVA 开发,U3D 和 C#),同时在 ...
- 本科生毕业论文->计算机类(1)
写在前面:作为一个计算机类学生,本文只是面向计算机类本科论文进行了一些小经验总结,每个学校的论文要求不一致,具体的参考规范可以看学校的通知,毕业论文作为毕业的一个重要审核标准,写好毕业论文是非常重要的 ...
- 国内计算机类期刊 SCI收录:
国内计算机类期刊 SCI收录: JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY,计算机科学与技术,英文,双月刊, SCIE 国内计算机类期刊 EI收录: 核心类 ...
- C++练习案例1.计算机类(利用多态实现)
c++简单计算机类 简介 大家好,这里是天天like的博客,这是我发的第一篇随笔,用来记录我的学习日程,大家可以相互学习,多多交流,感谢 今天我要记录的随笔是在学习c++多态的知识点练习改进的一个案例 ...
- 设计一个网上书店,该系统中所有的计算机类图书(ComputerBook)每本都有10%的折扣,所有的语言类图书(LanguageBook)每本都有2元的折扣,小说类图书(NovelBook)每100元
现使用策略模式来设计该系统,绘制类图并编程实现 UML类图 书籍 package com.zheng; public class Book { private double price;// 价格 p ...
- PTA 创建计算机类
6-5创建计算机 (10分) 定义一个简单的Computer类,有数据成员芯片(cpu).内存(ram).光驱(cdrom)等等,有两个公有成员函数run.stop.cpu为CPU类的一个对象,ram ...
- 第十七周oj刷题——Problem B: 分数类的四则运算【C++】
Description 编写分数类Fraction,实现两个分数的加.减.乘和除四则运算.主函数已给定. Input 每行四个数,分别表示两个分数的分子和分母,以0 0 0 0 表示结束. Outpu ...
随机推荐
- Django的F查询和Q查询,事务,ORM执行原生SQL
F查询和Q查询,事务及其他 F查询和Q查询 F查询 在上面所有的例子中,我们构造的过滤器都只是将字段值与某个我们自己设定的常量做比较.如果我们要对两个字段的值做比较,那该怎么做呢? Django ...
- CentOS 7 下安装 MySQL 8.0
前言 本篇文章主要介绍在 CentOS 7 环境下安装 MySQL 8.0. 正文 1. 配置yum源 首先在 https://dev.mysql.com/downloads/repo/yum/ 找到 ...
- MySQL高级用法
-- 关联查询-- select * from Goods_BomItems s,Goods_Bom t where t.GoodsBomId = s.GoodsBomId and t.GoodsBo ...
- 优雅关闭服务下线(Jetty)
在很多时候 kill -9 pid并不是很友好的方法,那样会将我们正在执行请求给断掉,同时eureka 中服务依旧是处于在线状态,这个时候我们可以使用官方提供的actuator来做优雅的关闭处理 - ...
- 自定义PHPstorm快捷键
这篇随笔介绍一下PHPstorm自定义快捷键的步骤: 1.点击主菜单 File 下的 setting : 2.在弹出框中点击 Keymap : 3.之后会出现如下图所示的界面(图中所有的菜单都折叠了) ...
- SQL注入原理及代码分析(一)
前言 我们都知道,学安全,懂SQL注入是重中之重,因为即使是现在SQL注入漏洞依然存在,只是相对于之前现在挖SQL注入变的困难了.而且知识点比较多,所以在这里总结一下.通过构造有缺陷的代码,来理解常见 ...
- Navicat远程连接MySQL 提示1045 - Access denied for user 'root'@'223.74.158.192'(using password:YES)
问题: 今天在自己的阿里云服务器上(Window Server2012 R2)安装了一个MySQL5.7.26,在阿里云服务器中通过本地链接是正常的,但是当在自己的电脑上使用Navicat连接是提示: ...
- Python GIL(全局解释器锁)
理解并发和并行 并行:多个CPU同时执行多个不同的多任务. 就像两个程序(进程),这两个程序是真的在不同的CPU内同时执行多个任务. 并发:CPU切换处理不同的多任务, 还是有两个程序,但只有一个CP ...
- pandas | 使用pandas进行数据处理——DataFrame篇
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是pandas数据处理专题的第二篇文章,我们一起来聊聊pandas当中最重要的数据结构--DataFrame. 上一篇文章当中我们介绍了 ...
- Python 默认参数 关键词参数 位置参数
def StudentInfo(country='中国', name): print('%s,%s' % (name, country)) StudentInfo('美国', '大卫') 上述代码报错 ...