在右侧编辑器中的Begin-End之间补充代码,设计病毒类( Virus ),实现病毒检测功能,具体要求如下: 成员变量:int Gen,代表当前病毒对象的年龄,默认值为 0。 拷贝构造函数:Virus(const Virus &v),拷贝到一个新的病毒对象时,并将新的病毒对象的成员变量年龄在原来病毒对象的年龄上加 1。 重载==运算符:bool operator==(const int& g,const Virus &v),用来比较g==virus[i],以找出年龄为参数 g 的病毒,并统计计数。 测试说明 平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试: 测试输入:0 0 预期输出: 年龄:0 数量:1 年龄:1 数量:2 年龄:2 数量:0 输出结果说明:平台会先创建一个病毒1对象,年龄为0,然后拷贝两个病毒1对象,因此这两个新的病毒的年龄就为1。 开始你的任务吧,祝你成功!
时间: 2024-04-20 10:26:14 浏览: 276
```cpp
#include <iostream>
#include <vector>
class Virus {
private:
int Gen;
public:
Virus() : Gen(0) {}
Virus(const Virus &v) : Gen(v.Gen + 1) {}
friend bool operator==(const int& g, const Virus &v);
int getGen() const { return Gen; }
};
bool operator==(const int& g, const Virus &v) {
return g == v.Gen;
}
int main() {
std::vector<Virus> viruses;
viruses.push_back(Virus());
for (int i = 0; i < 2; i++) {
viruses.push_back(viruses[0]);
}
for (int i = 0; i < 3; i++) {
int count = 0;
for (const Virus& virus : viruses) {
if (i == virus.getGen()) {
count++;
}
}
std::cout << "年龄:" << i << " 数量:" << count << std::endl;
}
return 0;
}
```