2014-08-29 2 views
-1

У меня есть класс Circle с переменными center типа Location и radius типа int. Location - класс с переменными xPosition и yPosition, оба из которых имеют тип int.C++ Использование переменной переменной класса?

У меня есть экземпляр Circle, который называется c, который уже имеет значения, назначенные его членам данных.

Теперь, если я хочу сделать:

cout << "x: " << c.center.xPosition << " y:" << c.center.yPosition << endl; 

Как будет идти об этом?

+2

Как и вы. –

ответ

3

Если переменные xPosition и yPosition в Location являются общедоступными, то, как вы его написали, он должен работать. Но если они частные, вы не можете получить к ним доступ непосредственно извне класса; вам нужно будет предоставить функции доступа (например, getXPosition()) в классе Location, а затем вы должны написать что-то вроде c.center.getXPosition().

Было бы лучше, если бы, чтобы написать operator<< функцию, которая позволяет Location класса писать сам в выходной поток:

class Location { 
public: 
    friend ostream &operator<<(ostream &stream, Location const &location); 

    // ... 
}; 

ostream &operator<<(ostream &stream, Location const &location) { 
    stream << "x: " << location.xPosition 
     << "y: " << location.yPosition; 

    return *this; 
} 

Тогда вы можете написать весь Location объект просто делать:

cout << c.center << endl;