我的老师告诉我,当我使用三个中的一个(即复制构造函数\默认\赋值)时,编译器不会免费使用另一个,我必须自己实现它们。 但我试图实现这样的构造函数:
A(int a): integer(a){};
然而我成功了:
A my_first_ob(100);
A my_second_ob(my_first_ob);
怎么可能? 也许有人可以在这里清楚我的事情?
答案 0 :(得分:0)
您实现的构造函数不是复制构造函数或默认构造函数,因此它与您的老师所说的(您认为)无关。
我相信你或你的老师混淆了两条规则。
一条规则是
= default;
。)(有更多情况导致"特殊会员功能"被删除,但这是大多数人首先偶然发现的。)
另一条规则("三条规则",这是更多经验法则)