//虚函数就是允许被子类重新定义的函数(覆盖或者是重写)
//覆盖:重新定义父类的虚函数的做法 晚绑定的
//重载:允许出现多个重名函数(参数表不同)早绑定的,对于函数的调用是在编译期间就确定了
//重载与多态无关,与面向对象无关
//封装可以隐藏实现细节,使得代码模块化,继承可以扩展已存在的代码模块(类),他们的目的都是为了实现代码的重用
//多态的则是为了实现另一个目的-接口重用
class point
{
float x;
float y;
public:
point(float a= 0.0f, float b = 0.0f) :x(a,b) { }
friend float distance(point&left, point&right);
};
float distance(point &left, point&right)
{
return ((left.x - right.x) ^ 2 + (left.y - right.y) ^ 2) ^ 0.5;
//覆盖:重新定义父类的虚函数的做法 晚绑定的
//重载:允许出现多个重名函数(参数表不同)早绑定的,对于函数的调用是在编译期间就确定了
//重载与多态无关,与面向对象无关
//封装可以隐藏实现细节,使得代码模块化,继承可以扩展已存在的代码模块(类),他们的目的都是为了实现代码的重用
//多态的则是为了实现另一个目的-接口重用
class point
{
float x;
float y;
public:
point(float a= 0.0f, float b = 0.0f) :x(a,b) { }
friend float distance(point&left, point&right);
};
float distance(point &left, point&right)
{
return ((left.x - right.x) ^ 2 + (left.y - right.y) ^ 2) ^ 0.5;
}