编写以 C++ 为单位返回值的函数

Writing Functions that Return a Value in C++

本文关键字:返回值 函数 为单位 C++      更新时间:2023-10-16

我的编程课入门有这个作业,我遇到了问题,因为终端不断显示此错误:

计算器.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未初始化。由于您根本不需要传递它,因此删除该参数可以解决此问题。