计算火车旅途时间的友元函数
时间: 2023-08-30 15:11:08 浏览: 82
假设有一个火车从起点出发,经过若干个站点,最终到达终点。我们可以定义一个友元函数来计算火车旅途的总时间。假设火车在经过每个站点时都会停留一段时间,那么我们可以根据火车的速度和每个站点之间的距离来计算旅途时间。代码如下:
```c++
class Train {
private:
// 火车速度,单位:km/h
double speed;
// 火车经过的站点信息
vector<pair<string, double>> stations; // 站点名称和距离起点的距离,单位:km
public:
Train(double _speed, const vector<pair<string, double>>& _stations) : speed(_speed), stations(_stations) {}
// 友元函数,用于计算火车旅途时间
friend double calculateTravelTime(const Train& train) {
double totalTime = 0.0;
double prevStationDistance = 0.0;
for (const auto& station : train.stations) {
double distance = station.second - prevStationDistance; // 当前站点到上一个站点的距离
double time = distance / train.speed; // 当前站点到上一个站点的旅途时间
totalTime += time;
prevStationDistance = station.second;
}
return totalTime;
}
};
```
在这个函数中,我们首先定义了一个变量 `totalTime` 来记录火车的总旅途时间,初始值为0。然后我们遍历每个站点,计算当前站点到上一个站点的距离和旅途时间,将旅途时间加入总旅途时间中。最后返回总旅途时间即可。需要注意的是,在这个函数中我们需要访问 `Train` 类的私有成员,所以我们将其声明为友元函数。