我对以下可以正确执行的代码感到好奇。
#include <iostream>
using namespace std;
class A
{
public:
A(int a=1, int b=2){
this->a = a;
this->b = b;
}
void print_a(){
cout<<a<<endl;
}
private:
int a;
int b;
};
int main() {
A aa = A(A()); //
aa.print_a();
return 0;
}
输出为1
,这是正确的。
我对这种机制很好奇。
此question之间的区别在于该问题的构造函数明确接受一个实例。