如何在头文件中的结构中获取变量? C ++

时间:2017-02-21 14:40:22

标签: c++ variables struct

基本上我的一个头文件已被更改,并且已删除了返回其中某些变量的函数,我现在不知道如何获取变量。请不要对此有所了解。

函数getX()getY()已从头文件中删除,我不允许以任何方式添加/修改头文件。有没有办法让我仍能从main.cpp获得x和y的值?:

struct Point
{
    int x;
    int y;

    Point ()                {   x = NULL;   y = NULL;   }
    Point (int x1, int y1)  {   x = x1;     y = y1;     }
    ~Point (void)           {   }


    Point & operator= (const Point &p)
    {   x = p.x;    y = p.y;    return (*this);     }

    bool operator== (const Point &p)
    {   return ( (x == p.x) && (y == p.y) );        } 

    bool operator!= (const Point &p)
    {   return ( (x != p.x) || (y != p.y) );        } 

    // 2 points are 'connected' but 'different' if they : 
    // i)  share the same 'x' but adjacent 'y' values, OR
    // ii) share the same 'y' but adjacent 'x' values!!
    bool isConnected (Point &p)
    {
        return (    ((x == p.x) && ( ((y-1) == p.y) || ((y+1) == p.y) )) || 
                    ((y == p.y) && ( ((x-1) == p.x) || ((x+1) == p.x) ))
               );
    }

    void display (std::ostream &outputStream=std::cout)     
    {   outputStream << "[" << x << ", " << y << "]";   }


    ============================================================
    // This two functions are now removed. =====================
    ============================================================
    int getX() // Removed.
    {
        return x;
    }

    int getY() // Removed.
    {
        return y;
    }

};

我之前使用过这两个函数的部分:

int deadendX = pointOne.getX();
int deadendY = pointOne.getY();

现在是否有办法从头文件中删除这些功能?我可以在main.cpp中编写一些函数来执行此操作吗?

2 个答案:

答案 0 :(得分:4)

这应该可以解决问题:

int deadendX = pointOne.x;
int deadendY = pointOne.y;

x和y是Point的公共成员变量,因此您可以访问它们。

答案 1 :(得分:3)

您可以以相同的方式访问公共结构/类成员,无论它们是数据成员还是方法。所以写下这个:

int deadendX = pointOne.x;
int deadendY = pointOne.y;