首先请看下面的语句:
Point3d obj;
Point3d *ptr = &obj;
当使用上述指针或者对象调用成员函数Func()时,会有:
obj.Func();
ptr->Func();
上述调用的背后到底完成了一些什么呢?
假设Func函数的定义如下:
Point3d Point3d::Func() const
{
Float a = getA();
Point3d ret;
ret._x = _x/a;
ret._y = _y/a;
ret._z = _z/a;
return ret;
}
getA的定义为:
float Point3d::getA()
{
return sqrt(_x*_x+_y*_y+_z*_z);
}
那么看过这些函数的定义之后,我们能否得知上述代码的执行过程呢?答案是不行!上述的代码最多能告诉我们