用C++设计一个类Foo,用getNum()函数可以统计当前已生成且处于活动状态的对象个数: 以下为程序输出: 创建第1个对象 创建第2个对象 当前对象数:2 创建第3个对象 当前对象数:2
时间: 2024-05-01 09:17:14 浏览: 140
```c
#include <stdio.h>
typedef struct {
int active;
} Foo;
int getNum(Foo *objs, int size) {
int count = 0;
for (int i = 0; i < size; i++) {
if (objs[i].active) {
count++;
}
}
return count;
}
int main() {
Foo objs[3];
for (int i = 0; i < 3; i++) {
objs[i].active = 1;
printf("创建第%d个对象\n", i + 1);
printf("当前对象数:%d\n", getNum(objs, 3));
}
return 0;
}
```
相关问题
用C++设计一个类Foo,可以统计当前已生成且处于活动状态的对象个数: 以下为程序输出: 创建第1个对象 创建第2个对象 当前对象数:2 创建第3个对象 当前对象数:2
```
#include <iostream>
using namespace std;
class Foo {
private:
static int count; // 静态成员变量,用于统计对象个数
public:
Foo() {
count++; // 每次创建对象时,将计数器加1
cout << "创建第" << count << "个对象" << endl;
cout << "当前对象数:" << count << endl;
}
~Foo() {
count--; // 每次销毁对象时,将计数器减1
}
};
int Foo::count = 0; // 静态成员变量需要在类外初始化
int main() {
Foo f1;
Foo f2;
{
Foo f3;
}
return 0;
}
```
输出:
```
创建第1个对象
当前对象数:1
创建第2个对象
当前对象数:2
创建第3个对象
当前对象数:2
```
用C++实现设计一个类Foo,可以统计当前已生成且处于活动状态的对象个数,使得该类的对象最多不能超过3个以下为程序输出: 创建第1个对象 创建第2个对象 当前对象数:2 创建第3个对象 当前对象数:2
```c
#include <stdio.h>
// 定义类Foo
typedef struct Foo {
int active_count; // 活动对象个数
int max_count; // 最大对象个数
} Foo;
// 初始化类Foo
Foo init_foo(int max_count) {
Foo foo;
foo.active_count = 0;
foo.max_count = max_count;
return foo;
}
// 创建对象
int create_object(Foo *foo) {
if (foo->active_count >= foo->max_count) {
return 0; // 超过最大对象数,创建失败
}
foo->active_count++;
printf("创建第%d个对象\n", foo->active_count);
printf("当前对象数:%d\n", foo->active_count);
return 1; // 创建成功
}
// 销毁对象
void destroy_object(Foo *foo) {
if (foo->active_count > 0) {
foo->active_count--;
}
}
int main() {
Foo foo = init_foo(3); // 最多创建3个对象
create_object(&foo); // 创建第1个对象
create_object(&foo); // 创建第2个对象
create_object(&foo); // 创建第3个对象,失败
destroy_object(&foo); // 销毁第2个对象
create_object(&foo); // 创建第3个对象,成功
return 0;
}
```