gpt4 book ai didi

c++ - 为什么对函数 "sample_mean"的调用不明确?

转载 作者:行者123 更新时间:2023-11-27 23:22:21 24 4
gpt4 key购买 nike

我正在用 xcode 编写一个程序来做一些统计分析。但是,当我构建用于计算样本方差的函数时,xcode 一直告诉我,我对函数 sample_mean 的调用(这也是我定义的函数)不明确。

代码如下:

#include <iostream>
#include <fstream>
#include <cmath>
#include <vector>


//sample_mean
double sample_mean (std::vector<double> v);


//sample_variance
double sample_variance (std::vector<double> v);



int main()
{
std::cout<<"hello world";
}


//sample_mean
double sample_mean (const std::vector<double>& v)
{
double sum= 0;
int i=0; for (; i<v.size(); ++i)
{
sum= sum+ v[i];
}
return sum/v.size();
}



//sample_variance
double sample_variance (const std::vector<double>& v)
{
double average= sample_mean(v);
double sum=0;
int i=0; for (; i<v.size(); ++i)
{
sum= sum+ std::pow((v[i]-average), 2);
}
return sum/v.size();
}

这段代码只包含sample_meansample_variance的定义,但是编译器一直告诉我sample_mean的函数调用在定义里面sample_variance(即 double average= sample_mean(v);)是不明确的。我的程序有什么问题?

最佳答案

您的定义与声明的签名不同。

简单的解决方法:将定义移至 main 之上,而忘记前向声明函数。

前向声明函数是一种 C 主义,在 C++ 中并不是一个特别好的想法。它只会增加工作量,并产生问题。如您所见。

关于c++ - 为什么对函数 "sample_mean"的调用不明确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11929703/

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