![]() |
#2
luoj752017-03-20 23:54
|
2
I_love_TA
helloworld
Sample Output
Number of SingleDog: 3
SingleDog 1. My name is I_love_TA
Number of SingleDog: 3
SingleDog 2. My name is helloworld
Number of SingleDog: 1
SingleDog 0. My name is wangwang

#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
};
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;
}
int SingleDog::count=0;
SingleDog::SingleDog(int id_, char* name_):id(id_)
{
int i=0;
char *name=new char [20];
while(name_[i]!='\0'){
name[i]=name_[i];
i++;
}
name[i]='\0';
count++;
}
SingleDog::SingleDog(const SingleDog & other):id(other.id)
{
int i=0;
name=new char [20];
while(other.name[i]!='\0')
{
name[i]=other.name[i];
i++;
}
name[i]='\0';
count++;
}
SingleDog::~SingleDog()
{
count--;
delete []name;
name=NULL;
}
int SingleDog::getCount()
{
return count;
}
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
};
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;
}
int SingleDog::count=0;
SingleDog::SingleDog(int id_, char* name_):id(id_)
{
int i=0;
char *name=new char [20];
while(name_[i]!='\0'){
name[i]=name_[i];
i++;
}
name[i]='\0';
count++;
}
SingleDog::SingleDog(const SingleDog & other):id(other.id)
{
int i=0;
name=new char [20];
while(other.name[i]!='\0')
{
name[i]=other.name[i];
i++;
}
name[i]='\0';
count++;
}
SingleDog::~SingleDog()
{
count--;
delete []name;
name=NULL;
}
int SingleDog::getCount()
{
return count;
}