C++习题SingleDog

    xiaoxiao2021-03-25  82

    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 };

    SingleDog.cpp*

    #include "SingleDog.h" #include <iostream> #include <cstring> using namespace std; int SingleDog::count = 0; //类中的静态变量此处无需前缀static SingleDog::SingleDog(int id_, char* name_):id(id_){ name = new char[21]; strcpy(name,name_); count++; } SingleDog::SingleDog(const SingleDog &other):id(other.id){ name = new char[21]; //char*是内存分配 strcpy(name,other.name); count++; } SingleDog::~SingleDog(){ delete []name; count--; }; int SingleDog::getCount(){ //同样,类中的静态函数此处无需前缀static return count; }
    转载请注明原文地址: https://ju.6miu.com/read-16651.html

    最新回复(0)