Bonjour J'ai essayé de résoudre le problème que j'ai rencontré avec le code sur lequel je travaille en ce moment. J'ai regardé d'autres messages mais je n'ai rien trouvé de pertinent. Fondamentalement, j'ai ajouté tous les fichiers nécessaires: l'en-tête et les fichiers source, mais toujours des erreurs. L'un d'entre eux est "'setValue': identifier not found
". Pour une raison quelconque, il ne reconnaît aucune des fonctions de mon fichier d'en-tête. De toute façon, voici la partie du code qui se rapporte à l'erreur. Je ne peux pas montrer tout le code comme énorme:Même ancien identificateur introuvable erreur en C++
tête 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);
Source 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;
}
fichier où je vous appelle mes fonctions 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]);
}
Cette chose me rend fou, mais je suis sûr qu'il est quelque chose de stupide que je ne vois pas. Merci d'avance.
Merci de l'avoir signalé mais l'erreur persiste. – GKED
Je pensais que l'appel est fait avec la portée de la classe héritée. Donc, il n'y a pas de relation entre 'CDoubleVector' et' Variogram'. – Mahesh