gpt4 book ai didi

C++类定义重复

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:14:30 25 4
gpt4 key购买 nike

这门课,特别是粗体字让我很困惑。为什么我们必须两次提到时间?如果我删除第一行粗体会发生什么?

时间.h

class Time {
public:
Time(); // this is "the first bold line"
Time(int h, int m, int s); // this is another "lines in bold"
void set(int h, int m, int s);
void print();
int allSeconds();
void difference(Time t);
int getHour();
int getMinute();
int getSecond();
void setHour(int h);
void setMinute(int m);
void setSecond(int s);

private:
int hour, minute, second;
};

最佳答案

Time();默认构造函数 的声明。当遇到类似 Time t; 的情况时调用它。

因为提供了额外的构造函数Time(int h, int m, int s);,所以编译器不会自动生成默认构造函数。

您可以通过编写 Time() = default; 告诉编译器采用编译器生成的默认构造函数。或者,为您的 3 参数构造函数提供默认参数:然后它可以代替默认参数。

C++ 标准库的某些部分(尤其是容器)要求对象是可默认构造的。因此,如果您错过了它,那么您可能会遇到一些编译错误,具体取决于您的类的使用方式。

关于C++类定义重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35696052/

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