|
1,全局变量&局部变量
代码一:
PNT3D P, P1, P2;
for( int i=0; i<3; i++ )
{
P = P1+P2;
}
代码二:
PNT3D P1, P2;
for( int i=0; i<3; i++ )
{
PNT3D P = P1+P2;
}
结论:前者比后者多一次PNT3D的构造函数、一次PNT3D的析构函数;
2,返回对象问题
代码一:
PNT2D operator +(PNT2D& a, PNT2D& b)
{
PNT2D res;
res.x = a.x+b.x;
res.y = a.y+b.y;
return res;
}
代码二:
PNT2D operator +(PNT2D& a, PNT2D& b)
{
PNT2D res(a.x+b.x,a.y+b.y);
return res;
}
代码三:
PNT2D operator +(PNT2D& a, PNT2D& b)
{
return PNT2D(a.x+b.x,a.y+b.y);
}
结论:第二段代码比第一段少做两次附值操作;第三段代码比第二段代码少一次PNT2D的构造函数、一次PNT2D的析构函数; |
|