定义一个人工智能学院大一学生类,派生出男生和女生类,利用私有继承输出男生数量和女生数量数,其中可以结合构造函数和析构函数完成,要求在类内定义一个静态成员变量来统计学生总人数。代码尽量简单
时间: 2024-02-22 13:54:41 浏览: 20
以下是一个简单的实现:
```c++
#include <iostream>
class AIStudent {
private:
static int total;
public:
AIStudent() {
total++;
}
virtual ~AIStudent() {
total--;
}
static int getTotal() {
return total;
}
};
class MaleStudent: private AIStudent {
public:
MaleStudent() {}
~MaleStudent() {}
static int getMaleNum() {
return AIStudent::getTotal();
}
};
class FemaleStudent: private AIStudent {
public:
FemaleStudent() {}
~FemaleStudent() {}
static int getFemaleNum() {
return AIStudent::getTotal();
}
};
int AIStudent::total = 0;
int main() {
MaleStudent male1;
MaleStudent male2;
FemaleStudent female1;
std::cout << "Number of male students: " << MaleStudent::getMaleNum() << std::endl;
std::cout << "Number of female students: " << FemaleStudent::getFemaleNum() << std::endl;
return 0;
}
```
这里定义了一个AIStudent类,包含一个静态成员变量total,用来统计学生总人数。MaleStudent和FemaleStudent类都私有继承自AIStudent类,这样它们就无法访问AIStudent的公有成员,但可以访问私有成员,包括total。
MaleStudent和FemaleStudent类中都没有其他成员变量和成员函数,它们只是利用继承关系来输出男生数量和女生数量。在main函数中创建了两个MaleStudent对象和一个FemaleStudent对象,然后分别调用getMaleNum()和getFemaleNum()静态成员函数来输出男生数量和女生数量。