"Too Many Initializer Values" 在 C++ 函数参数中
"Too Many Initializer Values" in C++ function parameters
这个,"Too Many Initializer Values",每次我尝试使用这些变量通过引用传递时,错误总是发生:
主文件。这是错误发生的地方,也是我遇到所有麻烦的地方。
#include <iostream>
#include <fstream>
#include "Header.h"
using namespace std;
int main() {
std::string itemName;
double itemPrice;
double itemQuantity;
double itemDiscount;
//Opening input file
ifstream infile;
infile.open("InputFile.txt");
infile >> itemName;
infile >> itemPrice;
infile >> itemQuantity;
infile >> itemDiscount;
//Opening output file
ifstream outfile;
outfile.open("OutputFile.txt");
//This is where the error occurs, a red underline at "itemQuantity"
double calculateCost(itemPrice, itemQuantity, itemDiscount);
}
函数定义。在这里你可以看到我正在尝试使用 "Pass By Reference".
#include <iostream>
double calculateCost(double &price, double &quantity, double &discountPct) {
//Placeholder code
std::cout << "Hello world.\n";
}
Header。我在这里也包括了参数的“&”符号。
#pragma once
double calculateCost(double &price, double &quantity, double &discountPct);
当你使用
double calculateCost(itemPrice, itemQuantity, itemDiscount);
编译器认为您正在尝试声明一个名为 calculateCost
的函数局部变量。这样的变量不能用括号内的内容初始化。要进行函数调用并捕获 return 值,请使用
double cost = calculateCost(itemPrice, itemQuantity, itemDiscount);
这个
double calculateCost(itemPrice, itemQuantity, itemDiscount);
是双精度类型标量对象的声明,名称为标识符 calculateCost。删除类型说明符
calculateCost(itemPrice, itemQuantity, itemDiscount);
还要考虑到该函数应有一个带有表达式的 return 语句。
这个,"Too Many Initializer Values",每次我尝试使用这些变量通过引用传递时,错误总是发生:
主文件。这是错误发生的地方,也是我遇到所有麻烦的地方。
#include <iostream>
#include <fstream>
#include "Header.h"
using namespace std;
int main() {
std::string itemName;
double itemPrice;
double itemQuantity;
double itemDiscount;
//Opening input file
ifstream infile;
infile.open("InputFile.txt");
infile >> itemName;
infile >> itemPrice;
infile >> itemQuantity;
infile >> itemDiscount;
//Opening output file
ifstream outfile;
outfile.open("OutputFile.txt");
//This is where the error occurs, a red underline at "itemQuantity"
double calculateCost(itemPrice, itemQuantity, itemDiscount);
}
函数定义。在这里你可以看到我正在尝试使用 "Pass By Reference".
#include <iostream>
double calculateCost(double &price, double &quantity, double &discountPct) {
//Placeholder code
std::cout << "Hello world.\n";
}
Header。我在这里也包括了参数的“&”符号。
#pragma once
double calculateCost(double &price, double &quantity, double &discountPct);
当你使用
double calculateCost(itemPrice, itemQuantity, itemDiscount);
编译器认为您正在尝试声明一个名为 calculateCost
的函数局部变量。这样的变量不能用括号内的内容初始化。要进行函数调用并捕获 return 值,请使用
double cost = calculateCost(itemPrice, itemQuantity, itemDiscount);
这个
double calculateCost(itemPrice, itemQuantity, itemDiscount);
是双精度类型标量对象的声明,名称为标识符 calculateCost。删除类型说明符
calculateCost(itemPrice, itemQuantity, itemDiscount);
还要考虑到该函数应有一个带有表达式的 return 语句。