1.
#include "stdio.h"
class A
{
public:
A()
{
printf("1");
}
A(A &a)
{
printf("2");
}
A &operator=(const A &a)
{
printf("3");
return *this;
}
};
int main()
{
A a;
A b = a;
}
A a; 调用构造器,打印1。A b = a; 调用了副本构造器,所以打印2。
如果是A a;A b;b = a; 那么打印结果为113。
2.
解析器遇到 || 时,只要前面为1 ,后面就不再执行。