我的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;
我是新人,所以我不知道我做错了什么。
答案 0 :(得分:3)
您正在计算second->getScreen_size()
和percentage
的产品。
编译器告诉您结果未被使用。
计算产品仅在您对结果执行某些操作时才有用,例如将其存储在变量中。如果你不对它做任何事情,编译器只会删除它以提高程序的速度。
由于你编写了一些永远不会实际完成的东西,你的编译器会告诉你,你可能在那里犯了错误。由于这不是技术错误,因此编译器仅将其视为警告。
答案 1 :(得分:1)
您实际上并未将multiply
方法中的乘法值存储在任何位置。编译器警告您,因为代码行second->getScreen_size() * percentage;
不存储结果或更改值。乘法的结果将被丢弃。
要修复警告,您应该将结果存储回某处的SmartWatch* second
指针。我不确定你的班级设计是什么样的,但你可以这样做:
second->setScreen_size(second->getScreen_size() * percentage);
删除警告,然后使用您编写的方法实际完成某些操作。