编写以 C++ 为单位返回值的函数
Writing Functions that Return a Value in C++
我的编程课入门有这个作业,我遇到了问题,因为终端不断显示此错误:
计算器.cpp:在函数 'int main((' 中:
计算器.cpp:30:10:警告:"结果"可能在此函数中使用未初始化 [-Wmaybe-未初始化]
结果 = 总和(数字一,数字二,结果(;
这是我当前的代码C++
// Calculator.cpp - This program performs arithmetic, ( +. -, *. / ) on two numbers.
// Input: Interactive
// Output: Result of arithmetic operation
#include <iostream>
#include <string>
using namespace std;
// Write performOperation() function declaration here
double sum(double numberOne, double numberTwo, double result);
double difference(double numberOne, double numberTwo, double result);
double product(double numberOne, double numberTwo, double result);
double quotient(double numberOne, double numberTwo, double result);
int main()
{
double numberOne, numberTwo;
string operation;
double result;
cout << "Enter the first number: ";
cin >> numberOne;
cout << "Enter the second number: ";
cin >> numberTwo;
cout << "Enter an operator (+.-.*,/): ";
cin >> operation;
// Call performOperation method here
if (operation == "+")
result = sum(numberOne, numberTwo, result);
else if (operation == "-")
result = difference(numberOne, numberTwo, result);
else if (operation == "*")
result = product(numberOne, numberTwo, result);
else if (operation == "/")
result = quotient(numberOne, numberTwo, result);
else
cout << "Please enter a valid operator." << endl;
if (operation == "+" || operation == "-" || operation == "*" || operation == "/")
{
cout << numberOne;
cout << " " << operation << " ";
cout << numberTwo;
cout << " = ";
cout << result << endl;
}
return 0;
} // End of main() function
// Write perform Operation function here
double sum(double numberOne, double numberTwo, double result)
{
result = numberOne + numberTwo;
return result;
}
double difference(double numberOne, double numberTwo, double result)
{
result = numberOne - numberTwo;
return result;
}
double product(double numberOne, double numberTwo, double result)
{
result = numberOne * numberTwo;
return result;
}
double quotient(double numberOne, double numberTwo, double result)
{
result = numberOne / numberTwo;
return result;
}
我尝试在 0.0 中初始化结果,但错误随之而来。我们使用这个圣智学习的东西,它只显示 80% 完成。
double result=0.0;
问题源于每个函数的第三个参数:
double sum(double numberOne, double numberTwo, double result);
^^^^^^^^^^^^^
无需将result
传递给函数,因为将在return
语句中返回结果。删除第三个参数,调整对函数的所有调用,您将避免此警告。
您收到此警告的原因是编译器看到对sum()
或其他任何内容的调用,看到您正在传入result
的值,但result
未初始化。由于您根本不需要传递它,因此删除该参数可以解决此问题。
相关文章:
- 从python中调用C++函数并获取返回值
- 编译器警告:执行到达值返回函数的末尾而不返回值
- 将返回值存储在函数指针数组的指针中是如何工作的?
- 程序不向函数返回值
- 如何在另一个函数中使用返回值作为参数?
- 编写以 C++ 为单位返回值的函数
- 了解在返回值之前和之后使用 EAX 的函数调用
- 当我使用 void 函数的返回值(通过强制转换函数指针)时,究竟会发生什么?
- 如何在不使用临时变量的情况下取消引用返回指针的函数的返回值?
- 如何将不可移动和不可复制的函数返回值获取到数组中
- G++ 编译器是否在未使用返回值的情况下将 constexpr 函数视为常规函数?
- 为什么当你将函数的返回值乘以零时它不会短路?
- 函数的返回值类型是别名 ***或 *** 布尔值
- 如何在没有返回值的情况下使用(特征)unaryExpr 和 lambda 函数?
- 创建 std::函数,它返回具有函数成员值的变量.分段错误
- 为什么这个"ctypes"包装函数的返回值是"c_long(0)"而不是&quo
- 函数不显示返回值 - C++
- 结构新手,我对如何从 void 函数中返回值并将其放入另一个函数感到困惑
- 将 void 函数更改为返回值函数
- 返回值函数中结构成员赋值的额外拷贝