gpt4 book ai didi

c++ - '(' 出现奇怪的 C++ 语法错误

转载 作者:太空宇宙 更新时间:2023-11-04 16:24:10 26 4
gpt4 key购买 nike

我的代码有一个奇怪的问题(或者我可能只是有点生疏了):下面的代码:

#include <iostream>
#include <vector>

using namespace std;

typedef vector<double> vDouble;
typedef vector<int> vInt;

//Class for calculations
class CallCosts
{
CallCosts::CallCosts();
CallCosts::CallCosts(vDouble nrates(4, 0)); //Constructor

void CallCosts::setRates(vDouble sr(4, 0));
void CallCosts::getTotals(vDouble gt(4, 0), vInt minutes(4, 0));

vDouble rates(4, 0);
vDouble totals(4, 0);

};

编译器在第 16 行给我一个错误:

CallCosts::CallCosts(vDouble nrates(4, 0)); //Constructor

错误是:'(' 标记前需要 ',' 或 '...'。

现在我很确定我没有错过;任何地方,那么还有什么可能导致这个?另一个注意事项:我之前使用的是普通变量而不是 typedef,并且代码有效,所以这可能是问题所在,但除此之外我不确定?

提前致谢。

最佳答案

你的构造函数声明是错误的:

 CallCosts::CallCosts(vDouble nrates(4, 0));

它应该是这样的:

CallCosts(const vDouble& nrates);

您通过 const 引用传递 vector 。

定义应该是这样的:

CallCosts::CallCosts(const vDouble& nrates) : rates(nrates) {}

在这里,您使用初始化列表来初始化您的私有(private)变量,其中包含作为参数传递给您的构造函数的内容。

关于c++ - '(' 出现奇怪的 C++ 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13724263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com