如何注入 Agurment Const&Type C++

how to inject agurment const& type c++

本文关键字:Const Type C++ Agurment 何注入 注入      更新时间:2023-10-16

我有一个类Clock的构造函数。

 Clock(CLOCK_TYPE type_, ClockTime const& initialTime, double const  driftPerSecond, char const * const name)

在main函数中,我创建了一个新的类实例。但是我不知道如何将参数传递给第二个参数(ClockTime constamp;initialTime)。这是ClockTime的构造函数。

ClockTime::ClockTime()
: hour_(0),
minute_(0),
second_(0),
secondsPerTick_(0),
deltaTime_(0)
{
    recordStartTime();
}
ClockTime::ClockTime(int hour, int minute, int second, int secondsPerTick)
: hour_(hour),
minute_(minute),
second_(second),
secondsPerTick_(secondsPerTick),
deltaTime_(0)
{
    recordStartTime();
}

这个const&仅仅意味着函数不会修改你的Clocktime对象。它实际上并不影响你传递参数的方式。所以下面的代码可以工作:

ClockTime t;
Clock c(..., t, ...);

例如:

Clock clock( /*...*/, ClockTime( h, m, s, t ), /*...*/ );

或以下方式

Clock clock( /*...*/, { h, m, s, t }, /*...*/ );

其中h, m, s, t是构造函数ClockTime的一些参数。

或者你可以使用ClockTime类的默认构造函数

Clock clock( /*...*/, ClockTime(), /*...*/ );