为了账号安全,请及时绑定邮箱和手机立即绑定

求教c++大神。帮忙解决。

#include <iostream.h>

#include <string.h>

 

class CStudent

{

public:

      CStudent(char *n, int a);

      ~CStudent();

 

      static void SetAge(int age);

 

private:

      char *name;

      int age;

      static int nTotalObj;

};

 

int CStudent::nTotalObj = 0;

 

CStudent::CStudent(char *n, int a)

:age(a)

{

      int nLen = strlen(n);

      name = new char[nLen+1];

      strcpy(name,n);

      name[nLen] = '\0';

 

      nTotalObj++;

}

CStudent::~CStudent()

{

      delete[] name;

 

      nTotalObj--;

}

 

void CStudent::SetAge(int age)

{

      this->age = age;

}

 

void main()

{

      CStudent stu1("张三",25);

      CStudent str2("李四",26);

      cout<<"CStudent::nTotalObj="<<CStudent::nTotalObj<<endl;

}

问题一:以上程序编译能通过吗,为什么?

问题二:成员变量nTotalObj在程序中起什么作用,它是如何实现的?

问题三:如果规定该程序的主函数和类CStudent中的成员变量的属性不允许改变,应该如何改正该程序?


正在回答

1 回答

第一,能不能编译通过你自己试一下不就知道了嘛。
第二,那个nTotalobj作为静态变量,是全局有效的,用来统计学生数。
第三,不是很明白你想说什么,属性不克改变具体指什么?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之模板篇
  • 参与学习       91156    人
  • 解答问题       318    个

本C++教程力求即学即会,所有知识以实践方式讲解到操作层面

进入课程

求教c++大神。帮忙解决。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信