将数组存储到对象C ++中

时间:2014-11-15 03:50:04

标签: c++

我有一类Shape用于计算其他属性和函数中的形状区域,而我的类Square继承自它。

主要是,我有一个形状指针矢量。在用户输入其形状和坐标后,我必须将它们的坐标存储到形状对象中,然后将对象存储到矢量本身中。

我不确定如何将数组存储到对象中,或者甚至是否可能。这是我尝试过的。

//Global variables
vector<Shape> *Shape;
void CalculateShapeData()
{
  //Variables declaration
  string shape;

  //Store x,y coordinates in array
  int tempx[100],tempy[100];

  cout << "Please enter name of shape : " << endl;
  cin >> shape;
  cout << "Please enter special type: " << endl;

  if (shape == "Rectangle")
  {
  }
  else if (shape == "Square")
  {
    for (int i = 0; i < 4;i ++)
    {
      cout << "Enter x-coordinate of pt " << i << ":" << endl;
      //cin >> tempx[i];
      cout << "Enter y-coordinate of pt " << i << ":" << endl;
      //cin >> tempy[i];

      //Store coordinates into square object
    }
  }

我在这里阅读了另一种选择,但它使用了结构。 storing input into Arrays C++

我不确定我是否可以使用数组代替它?

1 个答案:

答案 0 :(得分:0)

一个类当然可以包含一个数组,或任何其他有效类型的成员:

class Square: public Shape
{
private:
   Point vertices_ [4];
};

问题是:你想要的是什么?或者你想要一个点,加上宽度和高度。

......你如何获得广场的信息?最好的方法是通过ctor:

Square::Square (const Point& upperLeft, int width, int height);

我看到你发表评论说:我不能使用全局数组吗?嗯,当然,你可以做任何你想做的事。但它会令人困惑,因此编写,调试和维护更加困难。如果你必须使用全局数组,Square不能存储Point而是存储该全局数组的索引。但请不要。没有必要,这是另一个复杂程度。