将类转换为类类型的问题

时间:2017-10-03 13:49:56

标签: c++ loops

在下面的代码中,我将24小时制转换为12小时制。

在课程turbolinks:load中,我接受来自用户和课程A的价值,我正在进行转换逻辑。

如果用户输入的值大于B,那么我将12的值更改为c,但如果用户输入的值小于1,那么12的值正在变为c。另外,为了进一步分析,我在类1338中添加了另外两个变量xb,以查看它们发生了什么。在构造函数中,我将Bx的值初始化为b,但在显示它们时会显示0x=11585

请告知,即使在构造函数中初始化它们之后,如果时间值小于b=1338c=133812,这些值x=11585如何分配。

Program's output

b=1338

1 个答案:

答案 0 :(得分:0)

在采用A参数的构造函数中,您在初始化之前使用xbc 。这些成员变量将具有不确定值,即使从中读取它们也会导致undefined behavior

默认构造函数是 not 自动调用。

显式初始化成员变量,或者" call"默认构造函数:

B(A a1)
    : B()
{
    // The existing code...
}

关于一些不相关的注释:你应该创建构造函数explicit,因此它不是转换构造函数;您应该将参数作为常量引用传递:

explicit B(A const& a1)
    : B()
{
    // ...
}