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 ...
随机推荐
- SpringBoot——项目启动时读取配置及初始化资源
介绍 在开发过程中,我们有时候会遇到非接口调用而出发程序执行任务的一些场景,比如我们使用quartz定时框架通过配置文件来启动定时任务时,或者一些初始化资源场景等触发的任务执行场景. 方法一:注解 ...
- 入门大数据---通过Yarn搭建MapReduce和应用实例
上一篇中我们了解了MapReduce和Yarn的基本概念,接下来带领大家搭建下Mapreduce-HA的框架. 结构图如下: 开始搭建: 一.配置环境 注:可以现在一台计算机上进行配置,然后分发给其它 ...
- 并发06--JAVA中的并发工具类
1.等待多线程完成的CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作. 使用join也可以完成这个操作,代码示例如下: package com.exam ...
- css设置边框阴影;box-shadow的使用
html代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...
- 使用 Docker 开发 - 使用多阶段构建镜像
多阶段构建是一个新特性,需要 Docker 17.05 或更高版本的守护进程和客户端.对于那些努力优化 Dockerfiles 并使其易于阅读和维护的人来说,多阶段构建非常有用. 在多阶段构建之前 构 ...
- 干!垃圾微软!发布我的Netcore跨平台UI框架 CPF
什么鬼,我的CPF快写好了,你居然也要搞跨平台UI框架?什么Maui? 之前怎么不早说要搞跨平台UI框架呢?看到谷歌搞flutter眼红了?明年年底发布?又搞这种追别人屁股的烂事情. 什么MVU模式? ...
- c语言学习笔记第四章——字符串和格式化输入、输出
B站有视频演示 本章学习printf函数的输入输出,字符串的定义与实用. 字符串 字符串(character string)是一个或多个字符的序列,如下所示: "Zing went the ...
- Django---进阶4
目录 CBV源码剖析 模版语法传值 过滤器(过滤器只能最多有两个参数) 标签 自定义过滤器.标签.inclusion_tag 模版的继承 模版的导入 作业 CBV源码剖析 # 你自己不要修改源码 除了 ...
- Fetch.AI的最新发布speaks your language
更新增强长期网络的稳定性 包括新的Etch功能,使我们的代码比以往对开发人员更加友好.我们现在支持太阳下的每一种语言,包括普通话,希腊语和希伯来语-甚至表情符号 介绍我们很高兴地宣布我们最新的技术更新 ...
- response对象乱码--解决
中文乱码 响应对象中文乱码,即就是response对象乱码. response对象输出中文数据乱码解决方案: 1 字节流输出响应乱码. 该情况不一定乱码.但是解决乱码的步骤是: 1) 设置浏览器打开文 ...