1640 Single Dog
来源:互联网 发布:虚荣虚拟摇杆软件 编辑:程序博客网 时间:2024/05/29 12:09
Description
As we all know, there are many single dogs in SYSU, especially in SDCS. Now let’s create a class named SingleDog to represent them and count the number of existing dogs.
Detail
The SingleDog
has two member:
* id–the identifier of a SingleDog
, once a dog is created, its identifier can’t be changed any more(so it is const
);
* name–the name of a SingleDog.
You should manage the memory to store the name by yourself.
And there is a static member–count
. It’s used to count the number of existing dog. If a new dog is created, we increase it. If a dog is destroyed, we decrease it. You should initialize it with 0
.
You can read the SingleDog.h
to know more detail. (=_=)
Sample Input
2I_love_TAhelloworld
Sample Output
Number of SingleDog: 3SingleDog 1. My name is I_love_TANumber of SingleDog: 3SingleDog 2. My name is helloworldNumber of SingleDog: 1SingleDog 0. My name is wangwang
Provided Codes
main.cpp
#include "SingleDog.h"void printCount() { cout << "Number of SingleDog: " << SingleDog::getCount() << endl;}int main() { char name[20] = "wangwang"; int num; cin >> num; SingleDog dog(0, name), *p; for (int i = 1; i <= num; ++i) { cin >> name; SingleDog a(i, name); if (i % 2 != 0) { p = new SingleDog(i, name); printCount(); p->print(); delete p; } else { SingleDog b(a); printCount(); b.print(); } } printCount(); dog.print(); return 0;}
SingleDog.h
#include <iostream>using namespace std;class SingleDog {public: //constructor SingleDog(int id_, char* name_); //copy constructor SingleDog(const SingleDog &other); //desctructor ~SingleDog(); //return the count of single dog static int getCount(); //print some infomation void print() const { cout << "SingleDog " << id << ". My name is " << name << endl; }private: const int id; char *name; static int count; // the count of single dog};
Submission
SingleDog.cpp
#include <iostream>#include <string.h>#include "SingleDog.h"using namespace std;int SingleDog::count=0;int SingleDog::getCount(){ return count;}SingleDog::SingleDog(int id_, char* name_):id(id_){ name=new char[20]; strcpy(name,name_); count++;}SingleDog::SingleDog(const SingleDog &other):id(other.id){ name=new char[20]; strcpy(name,other.name); count++;}SingleDog::~SingleDog(){ delete []name; count--;}
Standard Answer
SingleDog.cpp
#include "SingleDog.h"#include <cstring>SingleDog::SingleDog(int id_, char* name_) : id(id_) { name = new char[strlen(name_)+1]; strcpy(name, name_); count++;}SingleDog::SingleDog(const SingleDog &other) : id(other.id) { name = new char[strlen(other.name)+1]; strcpy(name, other.name); count++;}SingleDog::~SingleDog() { delete []name; name = NULL; count--;}int SingleDog::getCount() { return count;}int SingleDog::count = 0;
阅读全文
0 0
- 1640 Single Dog
- single dog
- PAT.Basic.1065.单身狗! Single Dog!
- dog
- DoG
- dog
- dog
- Single
- Single
- Police Dog
- watch dog
- DOG算子
- watch dog
- DoG 算子
- SIFT &DOG
- DOG简析
- 周国栋是DOG
- Dog Numbering
- PostgreSQL数据库、表空间、角色及用户
- RTSP introduction
- ubuntu16.04安装vim
- 最长不下降子序列
- 阿里物联网套件-服务端SDK学习实践(基础篇-2创建产品)
- 1640 Single Dog
- Linux设备驱动之3.4.2内核下的I2C驱动
- struts2第四讲:struts2的简易工作流程
- BP神经网络
- Shell中的数值运算及处理
- 解析protobuf
- JavaWeb开发中的Session管理
- Windows 注册表处理函数
- Java一些简单的计算题合集(一)