我的班级Circle
包含center
类型的变量Location
和radius
类型的int
。 Location
是一个包含变量xPosition
和yPosition
的类,两者都是int
类型。
我有一个名为Circle
的{{1}}实例,该实例已经为其数据成员指定了值。
现在,如果我想这样做:
c
我该怎么做呢?
答案 0 :(得分: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;