C++ 警告 [-Wunused-value]

C++ warning [-Wunused-value]

我的 C++ 代码有问题,没有错误,只有警告阻止我的代码正常工作。我想将屏幕尺寸乘以百分比然后打印出来。

这是在我的 .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-value] second->getScreen_size() * percentage;

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

您正在计算 second->getScreen_size()percentage 的乘积。

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

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

因为你编写了一些永远、永远不会真正完成的东西,你的编译器告诉你你可能在那里犯了一个错误。由于这不是技术错误,编译器仅将其视为 警告

您实际上并没有将乘法的值存储在 multiply 方法中的任何地方。编译器警告您,因为代码行 second->getScreen_size() * percentage; 不存储结果或更改值。乘法的结果将被丢弃。

要修复警告,您应该将结果存储回 SmartWatch* second 指针中的某处。我不确定您的 class 设计是什么样的,但您可以这样做:

second->setScreen_size(second->getScreen_size() * percentage);

删除警告,然后使用您编写的方法实际完成一些事情。