给定如下程序代码,请根据main函数中对该类的操作,补充类实现部分完成代码。
该类有个私有静态变量count记录该类的所有对象数,主函数将会在不同语句之后输出对象数,只有正确地实现该类,保证count正确记录该类的对象数,才能输出正确的结果。
#include
#include
using namespace std;
class Student {
private:
int id;
static int count;
public:
// 此处填写自己的代码
};
int Student::count;
void PrintCount() {
cout << "Total " << Student::count << " students" << endl ;
}
void Print(Student s) {
cout << "the id is " << s.id << endl ;
}
int main() {
Student::InitCount();
Student s;
PrintCount();
Student s1(10);
Student s2(s1);
PrintCount();
Print(s2); // 调用拷贝构造函数,调用结束调用析构函数
PrintCount();
return 0;
}
// 此处填写自己的代码
static void InitCount(){ count = 0; }
Student()
{
Student::count++;
}
Student(int _id)
{
this->id = _id;
Student::count++;
}
Student(Student *s0)
{
this->id = s0->id;
Student::count++;
}
~Student()
{
Student::count--;
}
有一点问题,最上面的provate:要改为public:
static void InitCount(){ Student::count = 0; }
Student(){
Student::count++;
}
Student(int _id){
this->id = _id;
Student::count++;
}
Student(Student *s0){
this->id = s0->id;
Student::count++;
}
~Student()
{
Student::count--;
}
friend void PrintCount();
friend void Print(Student s);
这样就好了