gpt4 book ai didi

C++ 将参数传递给类的实例

转载 作者:行者123 更新时间:2023-11-28 06:27:58 24 4
gpt4 key购买 nike

我正在调试一些用 C++ 编写的模拟软件,但无法理解部分代码。

该软件模拟一些在 3D 世界中移动的实体,它们的行为可以设置为从 A 到 B 沿直线移动、绕特定点旋转或遵循预定义的路线等。

当实体在模拟中移动时,有关其移动的一些信息会呈现给用户,例如:其当前速度、航向(方向)、到当前目标的距离、到达当前目标所需的时间该位置的目标和预计到达时间等。

我目前正在处理的错误是 ETA 和旅程的“完成当前行程的时间”向用户显示的值不正确。

我在向用户显示此信息的 C++ 源文件中遇到了以下代码:

DateTimeAndZone fpETA(mCurrentTime);
SystemTimeTypes::addRelativeTimeToSystemTime(fpETA, flightPlanETA);

DateTimeAndZone 是一个类,所以 fpETA 是该类的一个实例...我不明白的是 mCurrentTime (这也是一个 DateTimeAndZone),可以作为类实例的参数传递——看起来与将参数传递给函数的方式相同。

如果我转到 DateTimeAndZone 类的定义,在它的末尾有一个 return 语句返回一个 static std::string_classname

任何人都可以向我解释如何将一个类作为参数传递给新类的创建吗?这意味着什么?这是否意味着新类将采用现有类中存储的信息?还是我在这里遗漏了什么?

我在 SO 上遇到了这个问题,但它并没有真正回答我的问题... Passing a class object as an argument in C++

最佳答案

DateTimeAndZone fpETA(mCurrentTime);

这会调用 DateTimeAndZone 的构造函数,并定义参数。如果 mCurrentTime 是一个 DateTimeAndZone 对象,默认情况下将调用复制构造函数,如果已定义,则调用 DateTimeAndZone 的复制构造函数。

关于C++ 将参数传递给类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28190051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com