考虑我的程序的以下C ++代码:CODE
当我运行此程序时,它会输出以下内容:
**巧克力质量:41
巧克力密度:nan **
我希望程序输出体积变量除以质量变量。它似乎正确地执行了此操作,但它将初始化的值除以对象类中的变量,而不是将分配给main()函数中的变量的值除以。我该如何解决这个问题?
非常感谢所有帮助!
答案 0 :(得分:1)
您告诉软件“更新”输入,即weight
,volume
和mass
,但您从未告诉软件在给定新值density
的情况下更新volume
{1}}和mass
。密度的值在构造函数中计算一次,在创建对象时仅称为一次(更不用说当人们做0/0
之类的事情时我感到非常紧张)。需要单独的功能来更新密度,调用。
答案 1 :(得分:0)
我希望以下提示有所帮助:
使用class constructor
初始化班级成员,这就是constructors
存在的原因。
使用现有的setter更新density
。每次调用setMass
或setVolume
时,都会重新计算density
。
每当使用除法时,请确保不要除以0。
使用正确类型的常量初始化变量。 0
默认为int
,0.0
的类型为double
。
答案 2 :(得分:0)
好的,你的程序中有一个错误...... 改变这一行:
Double getDensity()const{return density;}
要:
Double getDensity(){density=volume/mass;return density;}
并替换:
Double density = volume/mass;
要:
Double density;
下次请粘贴代码。屏幕截图不起作用......