2014-08-29 23 views
-1

我有一个类Circle与变量center类型Locationradius类型intLocation是变量xPositionyPosition的类别,两者都是int类型。C++使用类的类变量的变量?

我有一个Circle的实例,名为c,它已经赋值给它的数据成员。

现在,如果我想做的事:

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

我将如何做呢?

+2

就像你做的一样。 – 2014-08-29 03:48:53

回答

3

如果Location中的xPositionyPosition变量是公开的,那么编写它的方式应该可行。但如果他们是私人的,你不能直接从课堂以外访问他们;您需要在Location课程中提供访问者函数(例如getXPosition()),然后您会写入类似c.center.getXPosition()的内容。只是做

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对象:

这将是更好的,但是,写一个operator<<功能让Location类写本身到输出流

cout << c.center << endl;