请设计一个类Foo,可以统计当前已生成且处于活动状态的对象个数,使得该类的对象最多不能超过3个以下为程序输出: 创建第1个对象 创建第2个对象 当前对象数:2 创建第3个对象 当前对象数:2
时间: 2024-05-21 16:10:37 浏览: 39
class Foo:
active_objects = 0 # 记录当前活动对象数
def __init__(self):
if Foo.active_objects < 3: # 如果当前活动对象数小于3
Foo.active_objects += 1 # 活动对象数加1
print('创建第{}个对象'.format(Foo.active_objects))
print('当前对象数:{}'.format(Foo.active_objects))
else:
print('已经创建了3个对象,不能再创建新对象了')
# 测试代码
f1 = Foo() # 创建第1个对象
f2 = Foo() # 创建第2个对象
f3 = Foo() # 创建第3个对象
f4 = Foo() # 超过最大对象数,不能再创建新对象了
相关问题
用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;
}
```
阅读全文