看“ Pointers to classes”下的示例(非常底部)

我们如何在此处使用点运算符:

CRectangle * d = new CRectangle[2];
...
d[1].set_values (7,8);


如果d是一个指针?

线路的相同问题:

  cout << "d[0] area: " << d[0].area() << endl;
  cout << "d[1] area: " << d[1].area() << endl;


另外,对于声明:

  CRectangle * d = new CRectangle[2];


我们可以声明一个指向该类型的指针而无需先声明一个对象吗?

最佳答案

d是指向CRectangle对象数组的指针(在这种情况下为2)。 d [i]是第i个CRectangle对象。因此,当您说d [i] .set_values()时,您实际上是在该数组中第i个CRectangle对象上调用set_values方法。

08-27 01:27