有这么复制构造的吗
题目描述
补全类 Magic
的定义,使得其输出符合下文的规定。
关于输入
无
关于输出
见样例输出
核心技巧
- 注意关注复制构造函数调用的时机。
参考答案
#include <iostream>
class Magic {
public:
int value;
Magic() {}
Magic(int x): value{x} {}
Magic(const Magic& m): value{m.value + 2} {}
};
void print(Magic o) {
std::cout << o.value << std::endl;
}
int main() {
Magic a(5);
Magic b = a;
print(b);
Magic d;
d = a;
std::cout << d.value << std::endl;
print(d);
}