你好我一直在試圖解決我一直在使用我目前正在使用的代碼的問題。我看過其他帖子,但找不到任何相關的內容。 基本上,我添加了所有必要的文件:頭文件和源文件,但仍然出現錯誤。其中之一是「'setValue': identifier not found
」。出於某種原因,它不能識別我的頭文件中的任何函數。無論如何,這裏是與錯誤有關的部分代碼。我不能顯示所有的代碼,其巨大的:在C++中找不到相同的舊標識符錯誤
頁眉DoubleVector.h:
#pragma once
#pragma warning(disable : 4251)
#ifndef DOUBLEVECTOR_H_
#define DOUBLEVECTOR_H_
#define _USE_MATH_DEFINES // need to use M_PI
#include <math.h>
#include "PMath.h"
// whole bunch of constructors and functions declarations, which I won't show
// this is one of the functions that's causing trouble
void SetValue(long index,double val);
來源DoubleVector.cxx:
void CDoubleVector::SetValue(long index,double val)
{
if(index < 0 || index >= m_nSize)
{
//string message("Index out of range of vector.");
//throw PMathError(message);
throw PMathError("Error: index(%d) out of range. <- void SetValue(long index, double val) in DoubleVector.cxx",index); // tested
}
m_pData[index] = val;
}
文件,其中我打電話給我的功能variogram.cc :
#include "variogram.h"
#include "DoubleVector.h"
void Variogram::estimate() {
base_multimin_function_fdf fdf;
fdf.n = _spatialCorrFunc.param.size();
fdf.f = &minimizationf;
fdf.df = &minimizationfd;
fdf.fdf = &minimizationfdf;
fdf.params = this;
long iter = 0;
int status;
//gsl_vector *x = gsl_vector_alloc(fdf.n);
for (int i = 0; i < fdf.n; ++i) {
if(i < 3)
//gsl_vector_set(x, i, sqrt(_spatialCorrFunc.param[i]));
//Greg: void SetValue(long index, double val) as an alternative //to gsl_vector_set(...)
SetValue(i,sqrt(_spatialCorrFunc.param[i]));
else//kappa
SetValue(i, _spatialCorrFunc.param[i]);
}
這件事讓我發瘋,但我確信這是我看不到的東西。 在此先感謝。
感謝您指出,但錯誤仍顯示出來。 – GKED
我以爲這個調用是從繼承的類的範圍進行的。所以,'CDoubleVector'和'Variogram'之間沒有關係。 – Mahesh