目录
第1关:病毒复制
任务描述
本关任务:设计一个病毒类。
相关知识
本关涉及到的内容如下:
- 拷贝构造函数
- 重载
!=
和==
运算符
拷贝构造函数
当一个构造函数的唯一一个参数就是它所在类的引用时,这个构造函数就是一个拷贝构造函数,比如:
class Test
{
public:
Test();
Test(const Test& t); //拷贝构造函数,参数不带const也行
};
简单来说,拷贝构造函数的调用时机有三个:
- 用一个对象去初始化一个同类对象时,可以是通过构造函数传入给一个同类对象,还可以是使用赋值运算符
=
。 - 将一个对象作为参数传递给一个函数,而且形式参数不是这个类型的指针或引用。
- 将一个对象作为返回值返回,而且返回值类型不是这个类型的指针或引用。
比如:
/* 类声明同上 */
Test::Test(){}
- <