定义一个 Cat 类,拥有静态数据成员 numOfCats,记录 Cat 的 个体数目;静态成员函数 getNumOfCats(),读取 numOfCats。设计程 序测试这个类,体会静态数据成员和静态成员函数的用法。
时间: 2024-02-01 15:14:21 浏览: 109
下面是定义的Cat类及测试程序:
```c++
#include <iostream>
using namespace std;
class Cat {
private:
static int numOfCats; // 静态数据成员
public:
Cat() { numOfCats++; } // 构造函数,每创建一个对象,numOfCats自增1
static int getNumOfCats() { return numOfCats; } // 静态成员函数,返回numOfCats的值
};
int Cat::numOfCats = 0; // 静态数据成员初始化为0
int main() {
Cat cat1, cat2, cat3; // 创建3个对象
cout << "当前Cat对象的个数是:" << Cat::getNumOfCats() << endl; // 调用静态成员函数输出numOfCats的值
return 0;
}
```
程序输出:
```
当前Cat对象的个数是:3
```
这个程序定义了一个Cat类,其中有一个静态数据成员numOfCats,表示Cat对象的个数。在Cat类的构造函数中,numOfCats自增1,表示创建了一个新的Cat对象。同时,定义了一个静态成员函数getNumOfCats(),用于读取静态数据成员numOfCats的值。
在测试程序中,创建了3个Cat对象,然后调用静态成员函数输出numOfCats的值,结果为3,说明程序成功地实现了Cat类的设计。
相关问题
定义一个cat类,拥有数据成员char Catname[20],表示cat的名字,数据成员int Catage,表示cat的年龄,静态数据成员int numofcats,记录cat的个体数目,成员函数void Showcat(),输出cat的名字,年龄;静态成员函数getnumofcats(),读取numofcats
好的,我可以回答。以下是一个定义了Cat类的代码示例:
```
class Cat {
public:
char Catname[20]; // Cat名字
int Catage; // Cat年龄
static int numofcats; // Cat个体数目
void Showcat() {
printf("Cat名字: %s\n", Catname );
printf("Cat年龄: %d\n", Catage );
}
static int getnumofcats() {
return numofcats;
}
};
int Cat::numofcats = 0; // 初始化numofcats
int main() {
Cat cat1, cat2;
strcpy(cat1.Catname, "Tom"); // 设置cat1的名字为Tom
cat1.Catage = 3; // 设置cat1的年龄为3
Cat::numofcats++; // 增加Cat个体数目
strcpy(cat2.Catname, "Jerry"); // 设置cat2的名字为Jerry
cat2.Catage = 2; // 设置cat2的年龄为2
Cat::numofcats++; // 增加Cat个体数目
cat1.Showcat(); // 输出cat1的名字和年龄
cat2.Showcat(); // 输出cat2的名字和年龄
printf("Cat个体数目: %d\n", Cat::getnumofcats() ); // 输出Cat个体数目
return 0;
}
```
这个Cat类拥有数据成员Catname、Catage,分别表示Cat的名字和年龄,以及静态数据成员numofcats,表示Cat的个体数目。它还拥有Showcat()成员函数,用于输出Cat的名字和年龄,以及静态成员函数getnumofcats(),用于读取numofcats。Cat类的numofcats初始化为0,并且每当创建一个新的Cat对象时,numofcats就会增加。
定义一个Cat类,拥有数据成员char CatName[20],表示Cat的名字;数据成员int CatAge,表示Cat的年岁;静态数据成员int numOfCats,记录Cat的个体数目;成员函数void ShowCat(),输出Cat的名字、年岁;静态成员函数getNumOfCats(),读取numOfCats.
可以按照如下方式定义Cat类:
```cpp
class Cat {
private:
char CatName[20];
int CatAge;
static int numOfCats;
public:
Cat(char name[], int age) {
strcpy(CatName, name);
CatAge = age;
numOfCats++; // 每次创建对象时numOfCats自增1
}
void ShowCat() {
cout << "Cat name: " << CatName << ", age: " << CatAge << endl;
}
static int getNumOfCats() {
return numOfCats;
}
};
int Cat::numOfCats = 0; // 静态数据成员初始化
```
这个类中有一个静态数据成员numOfCats,表示Cat的个体数目,每次创建对象时该值就会自增1;还有一个静态成员函数getNumOfCats(),用于读取numOfCats的值。成员函数ShowCat()用于输出Cat的名字、年岁。