提问人:Frazer Zero 提问时间:1/30/2020 最后编辑:Bhargav RaoFrazer Zero 更新时间:2/2/2020 访问量:14916
C++ 函数参数中的“初始值设定项值过多”[已关闭]
"Too Many Initializer Values" in C++ function parameters [closed]
问:
每次我尝试使用这些变量通过引用传递时,都会出现“初始值设定项值过多”的错误:
主文件。这是发生错误的地方,也是我遇到所有麻烦的地方。
#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);
}
函数定义。在这里,您可以看到我正在尝试使用“按引用传递”。
#include <iostream>
double calculateCost(double &price, double &quantity, double &discountPct) {
//Placeholder code
std::cout << "Hello world.\n";
}
页眉。我在这里也包含了参数的“&”符号。
#pragma once
double calculateCost(double &price, double &quantity, double &discountPct);
答:
1赞
R Sahu
1/30/2020
#1
当您使用
double calculateCost(itemPrice, itemQuantity, itemDiscount);
编译器认为您正在尝试声明一个名为 的函数局部变量。此类变量不能由括号内的内容初始化。若要进行函数调用并捕获返回值,请使用calculateCost
double cost = calculateCost(itemPrice, itemQuantity, itemDiscount);
3赞
Vlad from Moscow
1/30/2020
#2
这
double calculateCost(itemPrice, itemQuantity, itemDiscount);
是 double 类型的标量对象的声明,其名称为标识符 calculateCost。删除类型说明符
calculateCost(itemPrice, itemQuantity, itemDiscount);
还要考虑到该函数应具有带有表达式的返回语句。
下一个:递归和引用传递的参数
评论
double calculateCost(itemPrice, itemQuantity, itemDiscount);
calculateCost(itemPrice, itemQuantity, itemDiscount);