今天写了一个类,其中的一个方法用到了默认参数,结果报了 “default argument given of parameter 的问题 ” 错误。
类头文件的声明如下:
void train(std::vector<std::vector<double> >& trainSet, std::vector<int>& labels, const std::string model, double lrate, std::vector<double>& w , double& b, int maxiter, double delt = 0.0000001 );
实现代码如下:
<pre name="code" class="cpp">void perceptron::train(std::vector<std::vector<double> >& trainSet, std::vector<int>& labels, const std::string model, double lrate, std::vector<double>& w , double& b, int maxiter, double delt=0.000001 ) { .... }
经上网查询才知,带有默认值参数的函数,在实现的时候,参数上是不能有值的。
应该将实现代码中的默认参数去掉,如下
void perceptron::train(std::vector<std::vector<double> >& trainSet, std::vector<int>& labels, const std::string model, double lrate, std::vector<double>& w , double& b, int maxiter, double delt ) { .... }
此时,就没有这个错误了。 记录一下。
时间: 2024-11-15 11:54:58