关于课程的问题

时间:2010-07-06 20:28:39

标签: c++

这是使用类

添加两个向量的代码示例
#include <iostream>
using namespace std;

class CVector {
  public:
    int x,y;
    CVector () {};
    CVector (int,int);
    CVector operator + (CVector);
};

CVector::CVector (int a, int b) {
  x = a;
  y = b;
}

CVector CVector::operator+ (CVector param) {
  CVector temp;
  temp.x = x + param.x;
  temp.y = y + param.y;
  return (temp);
}

int main () {
  CVector a (3,1);
  CVector b (1,2);
  CVector c;
  c = a + b;
  cout << c.x << "," << c.y;
  return 0;
}

对我来说理解它以及每天使用它的频率有点困难吗?

1 个答案:

答案 0 :(得分:4)

重要的一点是能够重载+符号,你可以用与常规数学相同的方式编写涉及数字以外的事物的操作。

您不必编写vector_add(a,b,c),而只需编写c = a + b;

编辑 - 虽然很容易被带走。添加两个向量是有道理的 - 它非常明确,虽然向量的乘法不是(你的意思是每个元素,点积或交叉积?)
问题在于人们只是学习这一点并开始为数据库记录添加额外的内容或为字符串划分 - 以具有自己的意义。

edit2 - 在实践中使用它也稍微复杂一些。上面的例子制作了不必要的数据副本,你需要更多地了解引用和const以供现实世界使用。