我不明白指向类的指针

时间:2015-11-24 21:44:43

标签: c++

我正在阅读C ++教程并遇到了这个示例代码。

// pointer to classes example
#include <iostream>
using namespace std;

class Rectangle {
  int width, height;
public:
  Rectangle(int x, int y) : width(x), height(y) {}
  int area(void) { return width * height; }
};


int main() {
  Rectangle obj (3, 4);
  Rectangle * foo, * bar, * baz;
  foo = &obj;
  bar = new Rectangle (5, 6);
  baz = new Rectangle[2] { {2,5}, {3,6} };
  cout << "obj's area: " << obj.area() << '\n';
  cout << "*foo's area: " << foo->area() << '\n';
  cout << "*bar's area: " << bar->area() << '\n';
  cout << "baz[0]'s area:" << baz[0].area() << '\n';
  cout << "baz[1]'s area:" << baz[1].area() << '\n';       
  delete bar;
  delete[] baz;
  return 0;
}

因此obj(&amp; obj)的地址被分配给foo,然后通过使用foo-&gt; area(),可以计算foo的区域。但为什么要经历这一切呢? foo指针提供什么好处?因为对我来说,似乎只是简单地通过Rectangle foo实例化foo并使用foo.area()来计算区域更容易。但是你何时会使用Rectangle *foo和地址做同样的事情?

0 个答案:

没有答案