【发布时间】:2013-10-19 00:38:50
【问题描述】:
我在 C++ 中遇到了这个小问题:
我在一个名为 angle.cpp 的文件中创建了一个名为 Angle 的对象。
它有一个名为degrees 的字段,类型为double。
这是我的构造函数:
Angle::Angle(double deg)
{
degrees = deg;
}
作为标准,我在单独的头文件中对我的 Angle 类进行了正确的声明。 到目前为止,一切看起来都简单而正确。
但是在我的 main.cpp 中,我的一个函数中有这个:
double value;
cin >> value;
Angle angle = Angle(value);
此时angle 对象的degrees 应该具有我在cin 中输入的任何值,对吧?
我在angle.cpp 中有另一个名为getDegrees() 的函数,它只返回degrees 的任何内容,因为我在头文件中将degrees 设为私有
但是当我与cout << angle.getDegrees() 核对时,我得到了一个奇怪的数字,例如6.64651e-315,这绝对不是我通过cin 给value 提供的。
【问题讨论】:
-
Angle.h是什么样的,Angle.cpp的其余部分是什么样的? -
您发布的代码本质上没有任何问题。如果您的“cin”输入无法正确解析为双精度(例如,文本字符串而不是数字),您会得到奇怪的结果。要么,要么您在未显示的代码中犯了一些错误。
-
在将
value的值发送给构造函数验证输入是否正确之前,您是否尝试过std::cout? -
确保
cin正确解析它,如前所述。另外,您是否使用了Angle对象的不同实例?
标签: c++ object parameters field