这里不允许使用函数声明

时间:2013-10-21 14:07:05

标签: c++ class debugging

#include <iostream>
using namespace std;

class ShapeTwoD
{
  public:
    virtual int get_x(int);
    virtual int get_y(int);

    virtual void set_x(int,int);
    virtual void set_y(int,int);

  protected:
};

class Square:public ShapeTwoD
{
  public:
  void set_x(int,int);

  int get_x(int);

  void set_y(int,int);
  int get_y(int);

  private:
    int x_coordinate[3];
    int y_coordinate[3];
};

int main()
{

   Square *s;
   s = new Square;

   int x;
   int y;

   for (int i = 0; i < 4; i++)
   {
       cin >> x;
       cin >> y;

       s->set_x(i,x);
       s->set_y(i,y);

       cout << s->get_x(i);


       ShapeTwoD* shape[100];

       shape[0] = s;

      cout << shape[0]->get_x(1);

}

int ShapeTwoD::get_x(int verticenum)
{
     return this-> x_coordinate[verticenum];
     return 0;
}

int ShapeTwoD::get_y(int verticenum)
{ 
    return 0;
}

void ShapeTwoD::set_x(int verticenum,int value)
{
    this-> x_coordinate[verticenum] = value;
}

void ShapeTwoD::set_y(int verticenum, int value)
{

}

void Square::set_x(int verticenum,int value)
{
    this->x_coordinate[verticenum] = value;
}


int Square::get_x(int verticenum)
{
    return this->x_coordinate[verticenum];
}

void Square::set_y(int verticenum, int value)
{
    this->y_coordinate[verticenum] = value;
}

int Square::get_y(int verticenum)
{
    return this->y_coordinate[verticenum];
}

我不知道为什么我收到此错误,我引用另一个SO question,它有完全相同的问题,但我看不到错误。 我确信这是我错过的一些小事。

1 个答案:

答案 0 :(得分:1)

您忘记在for - &gt;中关闭main周期的括号所有函数定义都变为本地的,不允许使用。