OOP的优点

时间:2010-09-13 04:53:53

标签: oop

  

可能重复:
  What's the point of OOP?

使用面向对象的编程比使用面向函数更有优势。

作为一个简单的例子考虑:

struct vector_t {
  int x, y, z;
}

void setVector(vector_t *vector, int _x, int _y, it _z) {
  vector->x = _x;
  vector->y = _y;
  vector->z = _z;
}

vector_t addVector(vector_t* vec1, vector_t* vec2) {
  vector_t vec3;
  vec3.x = vec1->x + vec2->x;
  // and so on...
  return vec3;
}

现在,我对面向对象编程并不十分熟悉,但上述内容将转换为OOP:

class vector_t {
private:
  int x, y, z;
public:
  void set(int _x, int _y, int _z) { ... };
  int getX() { return x; }
  // ...
  void addVector(vector_t *vec) { ... };
  // ...
};

我的问题是这个?是什么让第二个代码示例在现代编程中首先优先于第一个?有哪些优点和缺点?

1 个答案:

答案 0 :(得分:3)

您的第一个代码段实际上是一个穷人在非OO语言中的OO实现的示例。您正在定义抽象数据类型(vector_t)及其上允许的所有操作(setVectoraddVector等),但您并未将所有数据和操作封装到单个逻辑单元(即一个类)。如果您想要或需要使用C而不是C ++但仍希望获得OOP的一些好处,这可能很有用。

由于您已经在两个示例中都在进行OOP,我认为第二个代码段更好的原因应该是显而易见的。