如何使成员变量等于在main()中设置的另一个成员变量?

时间:2017-04-01 04:53:42

标签: c++ class initialization getter-setter

考虑我的程序的以下C ++代码:CODE

当我运行此程序时,它会输出以下内容:

**巧克力质量:41

巧克力密度:nan **

我希望程序输出体积变量除以质量变量。它似乎正确地执行了此操作,但它将初始化的值除以对象类中的变量,而不是将分配给main()函数中的变量的值除以。我该如何解决这个问题?

非常感谢所有帮助!

3 个答案:

答案 0 :(得分:1)

您告诉软件“更新”输入,即weightvolumemass,但您从未告诉软件在给定新值density的情况下更新volume {1}}和mass。密度的值在构造函数中计算一次,在创建对象时仅称为一次(更不用说当人们做0/0之类的事情时我感到非常紧张)。需要单独的功能来更新密度,调用

答案 1 :(得分:0)

我希望以下提示有所帮助:

  1. 使用class constructor初始化班级成员,这就是constructors存在的原因。

  2. 使用现有的setter更新density。每次调用setMasssetVolume时,都会重新计算density

  3. 每当使用除法时,请确保不要除以0。

  4. 使用正确类型的常量初始化变量。 0默认为int0.0的类型为double

答案 2 :(得分:0)

好的,你的程序中有一个错误...... 改变这一行:

Double getDensity()const{return density;}

要:

Double getDensity(){density=volume/mass;return density;}

并替换:

Double density = volume/mass;

要:

Double density;

下次请粘贴代码。屏幕截图不起作用......