gpt4 book ai didi

c++ - 在 C++ 中,如何在以下示例中成功地将类链接在一起?

转载 作者:太空宇宙 更新时间:2023-11-04 16:02:38 25 4
gpt4 key购买 nike

在 C++ 中,如何在以下示例中成功地将类链接在一起?

Clock timer;

std::cout << timer.getElapsedTime().inSeconds();
std::cout << timer.getElapsedTime().inMilliseconds();

如何成功编写代码?

class ElapsedTime
{
private:
double _start;

public :
ElapsedTime(double start)
{
_start = start;
}
double inSeconds() const
{
return (std::clock() - _start ) / (double) CLOCKS_PER_SEC;
}

double inMilliseconds() const
{
return ((std::clock() - _start ) / (double) CLOCKS_PER_SEC) * 1000;
}
};


class Clock
{
private:
std::clock_t _start;
double _duration;

public:

Clock()
{
_start = std::clock();
}

ElapsedTime getElapsedTime() const {
return ElapsedTime(_start);
}

double reset()
{
_duration = (std::clock() - _start ) / (double) CLOCKS_PER_SEC;
_start = std::clock();
return _duration;
}

};

编辑:在 pm100 之前进行了建议的更改

虽然类链仍然返回一个类似 .7e-05 的值

如果我尝试以下列方式使用 const,我会得到一个段错误

ElapsedTime const& getElapsedTime() const {
return ElapsedTime(_start);

最佳答案

如果你想让它以这种方式工作,这很奇怪。您需要一个采用 start

的 ElapsedTime 构造函数
class ElapsedTime
{
double _start;
public :
ElapsedTime(double start)
{
_start = start;
}

(在其余代码中使用 _start)

然后在时钟

   ElapsedTime getElapsedTime() const {
return ElapsedTime(start);
}

关于c++ - 在 C++ 中,如何在以下示例中成功地将类链接在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40870765/

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