C++;警告[-Wunused值] 我的C++代码有问题,没有错误,只是警告,它阻止我的代码按照需要工作。我想乘以屏幕大小的百分比,然后打印出来

C++;警告[-Wunused值] 我的C++代码有问题,没有错误,只是警告,它阻止我的代码按照需要工作。我想乘以屏幕大小的百分比,然后打印出来,c++,class,constructor,C++,Class,Constructor,这在my.h文件中: SmartWatch* multiply(SmartWatch* second, double percentage); 这在我的.cpp文件中: SmartWatch* SmartWatch::multiply(SmartWatch* second, double percentage){ second->getScreen_size() * percentage; return second; } 这主要是: SmartWatch *multiplied =

这在my.h文件中:

SmartWatch* multiply(SmartWatch* second, double percentage);
这在我的.cpp文件中:

SmartWatch* SmartWatch::multiply(SmartWatch* second, double percentage){
second->getScreen_size() * percentage;
return second;
}
这主要是:

SmartWatch *multiplied = &watch[0];
multiplied = multiplied ->multiply(&watch[1], 0.23);
multiplied->print();
我得到这个警告:

smartwatch.cpp:69:31:警告:表达式结果未使用[-Wunused值] 第二->获取屏幕大小()*百分比


我是新手,所以我不知道我做错了什么

您正在计算
second->getScreen\u size()
百分比的乘积

编译器告诉您结果未被使用

只有在对结果进行某些操作(例如将其存储在变量中)时,计算产品才有用。如果您不使用它,编译器只会删除它以提高程序的速度


由于你编写了一些永远不会真正完成的程序,你的编译器告诉你,你可能犯了一个错误。由于这不是一个技术错误,编译器只会将其视为一个警告。

实际上,您不会将乘法的值存储在
multiply
方法的任何位置。编译器警告您,因为代码行
second->getScreen\u size()*百分比不存储结果或更改值。乘法的结果将被丢弃

要修复该警告,应将结果存储回
SmartWatch*second
指针的某个位置。我不确定你的课堂设计是什么样的,但你可以这样做:

second->setScreen_size(second->getScreen_size() * percentage);
删除警告,然后用您编写的方法实际完成一些事情。

“阻止我的代码按应有的方式工作”-那么您期望的是什么行为以及您观察到的是什么行为?除非我们确切知道问题是什么,否则您希望我们如何告诉您如何解决问题?
second->getScreen\u size()*百分比所以你乘以了两个数字。你对乘法的结果做什么?现在,执行该行后,结果消失在空气中。