在linux下,编译器有时会对复制构造函数的调用做优化,避免不必要的复制构造函数调用。可以使用命令g++ xxx.cpp -fno-elide-constructors
命令关闭编译器优化。
例如下面代码的执行结果:
#include <iostream>
using namespace std;
class Point
{
public:
Point(int xx = 0, int yy = 0)
{
x = xx;
y = yy;