c++ 使用类的类变量的变量?

c++ Using a class' class variable's variable?

本文关键字:类变量 变量 c++      更新时间:2023-10-16

我有一个类Circle,其变量center为类型Locationradius为类型intLocation是一个具有变量xPositionyPosition的类,这两个变量都属于int类型。

我有一个Circle的实例,名为c,它已经为其数据成员分配了值。

现在,如果我想做:

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

我该怎么做?

如果Location中的xPositionyPosition变量是公共的,那么编写它的方式应该是有效的。但如果它们是私人的,你就不能直接从课堂之外访问它们;您需要在Location类中提供访问器函数(例如getXPosition()),然后编写类似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;