今天在学校我们学习了用 C++ 编写方法/函数的四种方法,但我不确定我是否理解每种方法的概念以及它们之间的区别。他们都做同样的事情吗?第一个代码是类声明,第二个代码是类外的实现:
一个)
1) Vector Addition(Vector a);
2) Vector Vector::Addition(Vector a)
{
Vector temp = *this;
temp.x+=a.x;
temp.y+=a.y;
return temp;
}
b)
1)Vector ConcreteInstanceAddition(Vector a, Vector b);
2) Vector Vector::ConcreteInstanceAddition(Vector a, Vector b)
{
Vector temp=*this;
temp.x=a.x+b.x;
temp.y=a.y+b.y;
return temp;
}
C)
1) friend Vector NonConcreteInstanceAddition(Vector a, Vector b);
2) Vector NonConcreteInstanceAddition(Vector a, Vector b)
{
Vector temp(0,0);
temp.x=a.x+b.x;
temp.y=a.y+b.y;
return temp;
}
d)
1) static Vector NonConcreteInstanceAdditionStatic(Vector a, Vector b);
2) Vector Vector::NonConcreteInstanceAdditionStatic(Vector a, Vector b)
{
Vector temp(0,0);
temp.x=a.x+b.x;
temp.y=a.y+b.y;
return temp;
}
这是主要功能中的实现:
Vector a(0,0),b(0,0),c(0,0);
c=a.Addition(b);
//or
c.ConcreteInstanceAddition(a,b);
//or
c=NonConcreteInstanceAddition(a,b);
//or
c=Vector::NonConcreteInstanceAdditionStatic(a,b);