"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 语句。