有这么复制构造的吗
题目描述
补全类 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);
}