2017-02-21 2 views
0

В основном один из моих файлов заголовков был изменен, и функция для возврата определенных переменных в нем была удалена, и я понятия не имею, как получить переменные сейчас. Может ли кто-нибудь пролить некоторый свет на то же самое.Как получить переменную внутри структуры в файле заголовка? C++

Функция getX() и getY() была удалена из файла заголовка, и мне не разрешено добавлять/изменять файл заголовка любым способом. Есть ли способ, я все еще могу получить значения х и у из моих main.cpp:

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

Это структура. Члены общественности. Хороший список книг [здесь] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list). – molbdnilo

ответ

4

Это должно сделать трюк:

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

х и у являются переменными общественными членами Point, поэтому они доступны для вас.

+0

О, это было так просто! Большое спасибо! Работает хорошо. – Pokee

3

Вы можете получить доступ к общедоступным структурам/классам таким же образом, поскольку они являются членами данных или методами. Так что просто написать это:

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